Y a-t-il quelque chose de intégré System.IO.Path
qui me donne juste le chemin du fichier?
Par exemple, si j'ai un string
@ "c: \ webserver \ public \ myCompany \ configs \ promo.xml",
y a-t-il une méthode BCL qui me donnera
"c: \ webserver \ public \ myCompany \ configs \"?
promo.xml
désigne un fichier ou un répertoire du même nom. C'est probablement pourquoiPath.GetDirectoryName()
est implémenté si simple et tronque simplement le dernier segment, ou supprime la barre oblique s'il y en a un.Réponses:
Path.GetDirectoryName()
... mais vous devez savoir que le chemin que vous lui passez contient un nom de fichier; il supprime simplement le bit final du chemin, que ce soit un nom de fichier ou un nom de répertoire (il n'a en fait aucune idée de qui).Vous pouvez d'abord valider en testant
File.Exists()
et / ouDirectory.Exists()
sur votre chemin d'abord pour voir si vous devez appelerPath.GetDirectoryName
la source
File.Exists()
. En effet, c'est plutôt contre-productif dans le cas où votre raison de trouver le nom du répertoire est de le créer s'il n'existe pas déjà.System.IO
pour que cela fonctionne.la source
using System.IO;
pas d'utiliser les méthodes de cheminPath.GetDirectoryName()
renvoie le nom du répertoire, donc pour ce que vous voulez (avec le caractère solidus inversé de fin), vous pouvez appelerPath.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
.la source
la source
Utilisez «GetParent ()» comme indiqué, fonctionne bien. Ajoutez la vérification des erreurs selon vos besoins.
la source
Je l'ai utilisé et cela fonctionne bien:
la source