Quelle est la façon la 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".
@"C:\MyDirectory\MyFile.bat"
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 seFileInfo
trouvent tous les deux dans l'espace de nomsSystem.IO
.la source
new FileInfo(path).Directory.FullName
devrait fonctionner dans les deux cas.la source
la source
Vous pouvez utiliser
System.IO.Path.GetDirectory(filename)
ou transformer le chemin d'accès en unFileInfo
et utiliserFileInfo.Directory
.Si vous faites d'autres choses avec le chemin, cela
FileInfo
peut avoir des avantages.la source
Utilisez le code mentionné ci-dessous pour obtenir le chemin du dossier
Cela renverra "C: \ MyDirectory" dans votre cas
la source
Vous pouvez utiliser
Path.GetDirectoryName
et simplement passer le nom de fichier.Lien MSDN
la source
Si vous travaillez avec un
FileInfo
objet, il existe un moyen simple d'extraire unestring
représentation du chemin complet du répertoire via laDirectoryName
propriété.Description de la
FileInfo.DirectoryName
propriété via MSDN:Exemple d'utilisation:
Lien vers la documentation MSDN .
la source
Vous pouvez obtenir le chemin d'application actuel en utilisant:
Bonne chance!
la source
Tout d'abord, vous devez utiliser l'espace de noms System.IO. Alors;
ou
la source
Vous pouvez utiliser
Path.GetFullPath
pour la plupart des cas. Mais si vous souhaitez obtenir le chemin également dans le cas où le nom de fichier est relativement localisé, vous pouvez utiliser la méthode générique ci-dessous:Par exemple:
GetPath("C:\Temp\Filename.txt")
revenir"C:\Temp\"
GetPath("Filename.txt")
retournercurrent working directory
comme"C:\Temp\"
la source
Dans mon cas, j'avais besoin de trouver le nom du répertoire d'un chemin complet (d'un répertoire) alors j'ai simplement fait:
la source
"C:\MyDirectory"
et nonMyDirectory
. Le conseil d'utiliser des méthodes de manipulation de chaînes est risqué, il existe de nombreux pièges, utilisez plutôt desPath
méthodes dédiées .Path.GetDirectoryName (Context.Parameters ["assemblypath"])
la source
Path.GetDirectoryName
est mentionné dans de nombreuses autres réponses (y compris la réponse acceptée)