string path = "C:/folder1/folder2/file.txt";
Quels objets ou méthodes pourrais-je utiliser qui me donneraient un résultat folder2
?
c#
path
filesystems
Ash Burlaczenko
la source
la source
Réponses:
J'utiliserais probablement quelque chose comme:
L'appel interne à
GetDirectoryName
renverra le chemin complet, tandis que l'appel externe àGetFileName()
renverra le dernier composant de chemin - qui sera le nom du dossier.Cette approche fonctionne, que le chemin existe ou non. Cette approche repose cependant sur le chemin se terminant initialement par un nom de fichier. Si vous ne savez pas si le chemin se termine par un nom de fichier ou un nom de dossier, vous devez d'abord vérifier le chemin réel pour voir si un fichier / dossier existe à l'emplacement. Dans ce cas, la réponse de Dan Dimitru peut être plus appropriée.
la source
Essaye ça:
la source
Simple et propre. Utilise uniquement
System.IO.FileSystem
- fonctionne comme un charme:la source
file.txt
, et nonfolder2
DirectoryInfo fait le travail pour supprimer le nom du répertoire
la source
J'ai utilisé cet extrait de code pour obtenir le répertoire d'un chemin lorsqu'aucun nom de fichier n'est dans le chemin:
par exemple "c: \ tmp \ test \ visual";
Production:
la source
la source
Il est également important de noter que lors de l'obtention d'une liste de noms de répertoires dans une boucle, la
DirectoryInfo
classe est initialisée une fois, permettant ainsi uniquement un premier appel. Afin de contourner cette limitation, assurez-vous d'utiliser des variables dans votre boucle pour stocker le nom de tout répertoire individuel.Par exemple, cet exemple de code parcourt une liste de répertoires dans n'importe quel répertoire parent tout en ajoutant chaque nom de répertoire trouvé dans une liste de type chaîne:
[C #]
[VB.NET]
la source
Le code ci-dessous permet d'obtenir uniquement le nom du dossier
la source
C'est moche mais évite les allocations:
la source