2010-10-11 6 views
7

Si j'ai un chemin de fichier comme "C: \ Mes documents \ Images \ Image1.png", comment puis-je obtenir le nom du dossier parent du fichier "Image1.png"? Dans ce cas, "Images", mais ce n'est qu'un échantillon. J'ai regardé par System.IO.Path et il ne semble y avoir rien là. Peut-être que je le néglige, mais je n'ai aucune idée de ce que ce serait.Obtention du (des) nom (s) de dossier du chemin

Répondre

9

Comme ceci:

Path.GetFileName(Path.GetDirectoryName(something)) 
+0

Snazzy, je ne savais pas que vous pourriez aborder le problème comme celui-ci . +1 – AndyPerfect

+0

Super, c'est le plus simple. Merci! – Stan

2

Essayez ceci:

var directoryFullPath = Path.GetDirectoryName(@"C:\My Documents\Images\Image1.png"); 
var directoryName = Path.GetFileName(directoryFullPath); \\ Images 
4

Utilisez System.IO.FileInfo.

string fl = "C:\My Documents\Images\Image1.png"; 
System.IO.FileInfo fi = new System.IO.FileInfo(fl); 
string owningDirectory = fi.Directory.Name; 
+0

Cette propriété renvoie le chemin d'accès complet au répertoire, ce qui n'est pas ce qu'il veut. – SLaks

+0

Merci d'avoir souligné cela - mis à jour. FileInfo.Directory.Name renverra le résultat souhaité. – code4life

1

La méthode suivante extraira tous les noms de répertoire et le nom du fichier

Dim path As String = "C:\My Documents\Images\Image1.png" 
Dim list As String() = path.Split("\") 
Console.WriteLine(list.ElementAt(list.Count - 2)) 
+0

Ceci est inutilement lent. – SLaks

+0

Eh bien, le titre fait allusion à la possibilité d'obtenir plusieurs noms de dossiers - n'était pas sûr si le demandeur voulait plus que le répertoire parent, alors pourquoi pas? – AndyPerfect

+0

Vous devez également séparer sur le séparateur de chemin alternatif (/ pour Windows) – Joe

4

Créer une instance de

System.IO.FileInfo f1 = new FileInfo("filepath"); 
        DirectoryInfo dir=f1.Directory; 
        string dirName = dir.Name; 
        string fullDirPath = dir.FullName; 
Questions connexes