string path = "C:/folder1/folder2/file.txt";
¿De qué objetos o métodos podría usar que me darían un resultado folder2
?
c#
path
filesystems
Ash Burlaczenko
fuente
fuente
Respuestas:
Probablemente usaría algo como:
La llamada interna a
GetDirectoryName
devolverá la ruta completa, mientras que la llamada externa aGetFileName()
devolverá el último componente de ruta, que será el nombre de la carpeta.Este enfoque funciona independientemente de si la ruta existe o no. Sin embargo, este enfoque se basa en la ruta que inicialmente termina en un nombre de archivo. Si no se sabe si la ruta termina en un nombre de archivo o nombre de carpeta, entonces se requiere que verifique la ruta real para ver si existe primero un archivo / carpeta en la ubicación. En ese caso, la respuesta de Dan Dimitru puede ser más apropiada.
fuente
Prueba esto:
fuente
Simple y limpio. Solo usa
System.IO.FileSystem
- funciona como un encanto:fuente
file.txt
, y nofolder2
DirectoryInfo hace el trabajo para eliminar el nombre del directorio
fuente
Usé este fragmento de código para obtener el directorio de una ruta cuando no hay un nombre de archivo en la ruta:
por ejemplo "c: \ tmp \ test \ visual";
Salida:
fuente
fuente
También es importante tener en cuenta que al obtener una lista de nombres de directorio en un bucle, la
DirectoryInfo
clase se inicializa una vez, lo que permite solo la llamada por primera vez. Para evitar esta limitación, asegúrese de usar variables dentro de su ciclo para almacenar el nombre de cualquier directorio individual.Por ejemplo, este código de muestra recorre una lista de directorios dentro de cualquier directorio padre mientras agrega cada nombre de directorio encontrado dentro de una Lista de tipo de cadena:
[C#]
[VB.NET]
fuente
El siguiente código ayuda a obtener solo el nombre de la carpeta
fuente
Esto es feo pero evita las asignaciones:
fuente