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
Use esto para obtener solo el nombre de archivo.
Path.GetFileName(files[0]);