215 votes

Obtenir le chemin complet sans nom de fichier à partir du chemin qui inclut le nom de fichier

Est-ce que quelque chose est construit dans System.IO.Path qui me donne juste le chemin du fichier?

Par exemple, si j'ai un string

@ "c: \ serveur web \ public \ maSociété \ configs \ promo.xml",

y at-il une méthode BCL qui me donnera

"c: \ serveur web \ public \ maSociété \ configs \"?

254voto

Andrew Barber Points 25990

Path.GetDirectoryName() ... mais vous devez savoir que le chemin que vous lui transmettez contient un nom de fichier; il supprime simplement le dernier bit du chemin, qu'il s'agisse d'un nom de fichier ou d'un nom de répertoire (il n'a en fait aucune idée de quoi).

Vous pouvez d'abord valider en testant File.Exists() et / ou Directory.Exists() sur votre chemin pour voir si vous devez appeler Path.GetDirectoryName

78voto

explorer Points 3352
Console.WriteLine( Path.GetDirectoryName(@"C:\hello\my\dear\world.hm")); 

50voto

Jon Hanna Points 40291

Path.GetDirectoryName() renvoie le nom du répertoire. Par conséquent, pour ce que vous voulez (avec le caractère de fin inverse), vous pouvez appeler Path.GetDirectoryName(filePath) + Path.DirectorySeparatorChar .

4voto

Karam Points 31

Je l'ai utilisé et ça marche bien.

 string[] filePaths = Directory.GetFiles(Path.GetDirectoryName(dialog.FileName));

foreach (string file in filePaths)
    if (comboBox1.SelectedItem.ToString() == "")
    {
        {
            if (file.Contains("c"))
            {
               comboBox2.Items.Add(Path.GetFileName(file));
            }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X