Question Comment puis-je obtenir le répertoire à partir du chemin complet d'un fichier?


Quel est le moyen le plus simple d'obtenir le répertoire dans lequel se trouve un fichier? J'utilise ceci pour définir un répertoire de travail.

string filename = @"C:\MyDirectory\MyFile.bat";

Dans cet exemple, je devrais obtenir "C: \ MyDirectory".


413
2018-03-23 17:49


origine


Réponses:


Si vous avez définitivement un chemin absolu, utilisez Path.GetDirectoryName(path).

Si vous ne pouvez obtenir qu'un nom relatif, utilisez new FileInfo(path).Directory.FullName.

Notez que Path et FileInfo sont tous deux trouvés dans l'espace de noms System.IO.


679
2018-03-23 17:52



System.IO.Path.GetDirectoryName(filename)

45
2018-03-23 17:52



Path.GetDirectoryName(filename);

19
2018-03-23 17:52



Vous pouvez utiliser System.IO.Path.GetDirectory(filename), ou tourner le chemin dans un FileInfo, et utilise FileInfo.Directory.

Si vous faites autre chose avec le chemin, le FileInfo peut avoir des avantages.


12
2018-03-23 17:53



Vous pouvez utiliser Path.GetDirectoryName et juste passer le nom de fichier.

Lien MSDN


9
2018-03-23 17:52



Utilisez le code mentionné ci-dessous pour obtenir le chemin du dossier

Path.GetDirectoryName(filename);

Cela reviendra "C: \ Mon répertoire" dans ton cas


7
2017-08-13 15:49



Si vous travaillez avec un FileInfo objet, alors il existe un moyen facile d'extraire un string représentation du chemin complet du répertoire via le DirectoryName propriété.

Description de FileInfo.DirectoryName Propriété via MSDN:

Obtient une chaîne représentant le chemin complet du répertoire.

Exemple d'utilisation:

string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"

Lien vers le Documentation MSDN.


4
2018-05-27 21:40



Vous pouvez obtenir le chemin d'application actuel en utilisant:

string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();

Bonne chance!


4
2017-07-01 16:14