web-dev-qa-db-fra.com

Récupère le contenu après la dernière barre oblique

J'ai des chaînes qui ont un répertoire au format suivant:

C: // bonjour // monde

Comment puis-je tout extraire après le dernier caractère/(monde)?

26
john cs
string path = "C://hello//world";
int pos = path.LastIndexOf("/") + 1;
Console.WriteLine(path.Substring(pos, path.Length - pos)); // prints "world"

La méthode LastIndexOf fonctionne de la même manière que IndexOf .. mais à partir de la fin de la chaîne.

44
Simon Whitehead

using System.Linq;

var s = "C://hello//world";
var last = s.Split('/').Last();
17
Matthew Steven Monkan

Il existe une classe statique pour travailler avec des chemins appelée Path .

Vous pouvez obtenir le nom de fichier complet avec Path.GetFileName .

ou

Vous pouvez obtenir le nom de fichier sans extension avec Path.GetFileNameWithoutExtension .

13
Dustin Kingen

Essaye ça:

string worldWithPath = "C://hello//world";
string world = worldWithPath.Substring(worldWithPath.LastIndexOf("/") + 1);
6
Mohammad Rahman

Je suggère de regarder le System.IO namespace car il semble que vous souhaitiez peut-être l'utiliser. Il existe également DirectoryInfo et FileInfo qui pourraient être utiles ici. Plus précisément propriété Name de DirectoryInfo

var directoryName = new DirectoryInfo(path).Name;
3
Justin Pihony