2010-12-01 4 views
2

Cela semble être un vraiment facile, mais tout ce que j'essaie ne semble pas fonctionnerC# Supprimer l'URL de chaîne

dire que j'ai la chaîne suivante:

string myString = "http://www.mysite.com/folder/file.jpg"; 

Comment puis-je traiter que pour enlever l'URL et laissez simplement "fichier.jpg" comme valeur de chaîne?

Merci!

Kris

+0

Que voulez-vous dans le cas de, par exemple, 'http://example.com/test.php?key = val'? Ou 'http: // example.com/test.htm # section1'? – Domenic

Répondre

9

Vous pouvez toujours utiliser System.IO.Path méthodes

string myString = "http://www.mysite.com/folder/file.jpg"; 
string fileName = Path.GetFileName(myString); // file.jpg 

Si vous ne voulez traiter URIs plus complexes, vous pouvez passer la pensée du type System.Uri et de saisir le AbsolutePath

string myString = "http://www.mysite.com/folder/file.jpg?test=1"; 
Uri uri = new Uri(myString); 
string file = Path.GetFileName(uri.AbsolutePath); 
+0

Ceci est l'un de mes hacks préférés :) Utilisez-le tout le temps pour analyser les ID de réseau. –

+0

Sachez que les caractères séparateurs utilisés par 'Path.GetFileName' dépendent de la plate-forme, il n'y a donc aucune garantie que'/'sera dans cet ensemble sur toutes les plates-formes possibles. (Cela dit, je ne connais aucune plate-forme où .NET s'exécute et n'inclut pas '/' dans l'ensemble.) – LukeH

+0

En même temps, il n'y a aucune promesse que '/' soit le caractère de délimitation correct pour un URI. Chemin dépendant de la plate-forme devrait obtenir la barre oblique correcte (comme une note, il supporte à la fois '/' et '\') ... au moins dans la version Microsoft. –

4
string lastPart = myString.Substring(myString.LastIndexOf('/') + 1);