268 votes

Obtenir le nom du dossier d’un chemin

<pre><code></code><p><code></code>?</p></pre>

445voto

LBushkin Points 60611

Je serais probablement utiliser quelque chose comme:

string path = "C:/folder1/folder2/file.txt";
string lastFolderName = Path.GetFileName( Path.GetDirectoryName( path ) );

L'appel intérieur à l' GetDirectoryName sera de retour le chemin d'accès complet, tandis que l'extérieur appel à l' GetFileName() sera de retour le dernier composant du chemin - qui sera le nom du dossier.

Cette approche fonctionne si oui ou non le chemin d'accès existe réellement. Cette approche, cependant, dépendent de la voie d'abord se terminant par un nom de fichier. Si on ne sait pas si le chemin se termine dans un nom de fichier ou le nom du dossier - alors il faut que vous vérifiez le chemin d'accès réel pour voir si un fichier/dossier existe à l'emplacement de la première. Dans ce cas, Dan Dimitru de réponse peut être plus approprié.

12voto

Mario Points 104

J’ai utilisé cet extrait de code pour obtenir le répertoire pour un chemin d’accès lorsque aucun nom de fichier n’est le chemin d’accès :

par exemple « c:\tmp\test\visual » ;

Sortie : « visual »

-4voto

Helmi Mzoughui Points 1
// For example:
String[] filePaths = Directory.GetFiles(@"C:\Nouveau dossier\Source");
String targetPath = @"C:\Nouveau dossier\Destination";

foreach (String FileD in filePaths) 
{
  try
  {
    FileInfo info = new FileInfo(FileD);
    String lastFolderName = Path.GetFileName(Path.GetDirectoryName(FileD));

    String NewDesFolder = System.IO.Path.Combine(targetPath, lastFolderName);
    if (!System.IO.Directory.Exists(NewDesFolder))
    {
      System.IO.Directory.CreateDirectory(NewDesFolder);
    }
    String destFile = System.IO.Path.Combine(NewDesFolder, info.Name);

    File.Move(FileD, destFile );

    // Try to move
    Console.WriteLine("Moved"); // Success
  }
  catch (IOException ex)
  {
    Console.WriteLine(ex); // Write error
  }
}

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