una subcarpetas ruta obtener nombre manipular extension directorios directorio con buscar archivos archivo c# filepath getfiles

subcarpetas - obtener ruta de archivo con openfiledialog c#



Directory.GetFiles: ¿cómo obtener solo el nombre de archivo, no la ruta completa? (4)

Eche un vistazo al uso de la propiedad FileInfo.Name

algo como

string[] files = Directory.GetFiles(dir); for (int iFile = 0; iFile < files.Length; iFile++) string fn = new FileInfo(files[iFile]).Name;

También eche un vistazo al uso de DirectoryInfo Class y FileInfo Class

Posible duplicado:
¿Cómo obtener solo nombres de archivos dentro de un directorio usando c #?

Utilizando C #, quiero obtener la lista de archivos en una carpeta.
Mi objetivo: ["file1.txt", "file2.txt"]

Entonces escribí esto:

string[] files = Directory.GetFiles(dir);

Lamentablemente, obtengo este resultado: ["C://dir//file1.txt", "C://dir//file2.txt"]

Podría quitar la parte no deseada "C: / dir /" después, pero ¿hay una solución más elegante?


Puede usar System.IO.Path.GetFileName para hacer esto.

P.ej,

string[] files = Directory.GetFiles(dir); foreach(string file in files) Console.WriteLine(Path.GetFileName(file));

Si bien puede usar FileInfo , es mucho más pesado que el enfoque que ya está utilizando (solo recupera rutas de archivos). Por lo tanto, le sugiero que se quede con GetFiles menos que necesite la funcionalidad adicional de la clase FileInfo .


Tratar,

string[] files = new DirectoryInfo(dir).GetFiles().Select(o => o.Name).ToArray();

La línea superior puede arrojar una excepción de acceso no autorizada. Para manejar este enlace, consulte el siguiente enlace

C # Handle System.UnaautorizedAccessException en LINQ


Use esto para obtener solo el nombre de archivo.

Path.GetFileName(files[0]);