URI non valide: le format de l’URI n’a pas pu être déterminé

Je continue à avoir cette erreur.

URI invalide: Le format de l’URI n’a pas pu être déterminé.

le code que j’ai est:

Uri uri = new Uri(slct.Text); if (DeleteFileOnServer(uri)) { nn.BalloonTipText = slct.Text + " has been deleted."; nn.ShowBalloonTip(30); } 

Mise à jour: le contenu de slct.Text est ftp.jt-software.net/style.css .

Ce qui donne? Comment est-ce que ce n’est pas un format d’URI valide? C’est du texte simple

Il peut être utile d’utiliser un constructeur différent pour Uri.

Si vous avez le nom du serveur

 ssortingng server = "http://www.myserver.com"; 

et avoir un chemin Uri relatif à lui append, par exemple

 ssortingng relativePath = "sites/files/images/picture.png" 

Lors de la création d’un Uri à partir de ces deux, j’obtiens l’exception “format n’a pas pu être déterminé” à moins que j’utilise le constructeur avec l’argument UriKind, c’est-à-dire

 // this works, because the protocol is included in the ssortingng Uri serverUri = new Uri(server); // needs UriKind arg, or UriFormatException is thrown Uri relativeUri = new Uri(relativePath, UriKind.Relative); // Uri(Uri, Uri) is the preferred constructor in this case Uri fullUri = new Uri(serverUri, relativeUri); 

Vérifiez les raisons possibles ici: http://msdn.microsoft.com/en-us/library/z6c2z492(v=VS.100).aspx

MODIFIER:

Vous devez mettre le préfixe de protocole devant l’adresse, c’est-à-dire dans votre cas “ftp: //”

Mieux vaut utiliser Uri.IsWellFormedUriSsortingng(ssortingng uriSsortingng, UriKind uriKind) . http://msdn.microsoft.com/en-us/library/system.uri.iswellformedurissortingng.aspx

Exemple :-

  if(Uri.IsWellFormedUriSsortingng(slct.Text,UriKind.Absolute)) { Uri uri = new Uri(slct.Text); if (DeleteFileOnServer(uri)) { nn.BalloonTipText = slct.Text + " has been deleted."; nn.ShowBalloonTip(30); } } 

On dirait que ça pourrait être un vrai uri. Je me suis heurté à ce problème lors de l’utilisation de Silverlight avec plusieurs navigateurs. Sur mon blog, j’ai mentionné une solution de contournement: transmettez un uri de “contexte” comme premier paramètre.

Si l’URI est réaliste, l’URI du contexte est utilisé pour créer un URI complet. Si l’URI est absolue, le contexte uri est ignoré.

EDIT: Vous avez besoin d’un “schéma” dans l’URI, par exemple, “ftp: //” ou “http: //”

J’ai plutôt contourné ce problème en utilisant UriBuilder .

 UriBuilder builder = new UriBuilder(slct.Text); if (DeleteFileOnServer(builder.Uri)) { ... }