Si j'ai:
C:\temp\foo\bar \
( NOTE: bar est un répertoire)
comment puis-je analyser:
bar
Je l'ai compris.
DirectoryInfo info = new DirectoryInfo(sourceDirectory_);
string currentDirectoryName = info.Name;
Essayer
System.IO.Path.GetFileName("C:\\temp\\foo\\bar");
Il suffit d'utiliser:
string dirname = new DirectoryInfo(@"C:\temp\foo\bar\").Name;
Selon MSDN, cela retourne le nom du répertoire, pas le chemin complet.
Lien vers la bibliothèque MSDN
J'espère que cela t'aides.........
On dirait qu'un groupe de personnes ont retiré leurs réponses, ce qui est peut-être une honte.
Celui-ci mérite d'être mentionné, mais uniquement pour la qualité "apprendre à un homme à pêcher" - il est court, élégant et fait de deux choses distinctes qui, une fois apprises, peuvent être réappliquées à d'autres problèmes.
string lastPiece = wholePath.Split('\\').Last();
Last
lancera si la liste est vide.
Le moyen le plus simple de procéder sans créer une nouvelle instance DirectoryInfo est d'utiliser la méthode Path.GetFileName static. Ceci est situé dans System.IO.
using System.IO;
string lastFolderName = Path.GetFileName(@"C:\Folder1\Folder2");
La variable serait définie sur "Dossier2".
C'est bien plus efficace que la création d'une nouvelle instance de la classe DirectoryInfo!
Je peux penser à 4 façons instantanément
string dirname = new DirectoryInfo(path).Name;
Console.WriteLine(dirname);
Essaye ça
string DirName = System.IO.Directory.GetParent(@"C:\temp\foo\bar\").Name;
Sous Unix, cela s'appelle le nom de base, un rapide Google a créé ce lien pour une version C # . Je suis sûr qu'il y en a d'autres ...
si les réponses ci-dessus ne répondent pas à vos besoins, pourquoi ne pas simplement sous-chaîne de la chaîne de la dernière.
string dirName = originalDirName.Substring(originalDirName.LastIndexOf("\\") + 1);
bien sûr, vous devriez vérifier si le nom original du nom original ne se termine pas sur un\et si le nom original du nom original est plus long que zéro et contient en fait des caractères \.