08 diciembre 2011

En C#: listado de todos los archivos encontrados en un directorio (incluyendo subdirectorios)

Para desarrollar este código utilizo un botón (llamado btnVer) y una caja de texto (llamada txtContenido).
En la caja de texto cargo los nombres de todos los ficheros contenidos en la ruta donde está el proyecto (no olvidemos que este código nació para probar un algoritmo que en el trabajo no me salia, y en casa sí). El botón hace la llamada a los procesos.

Así es el resultado del formulario al ejecutar el programa:


Código del botón:
private void btnVer_Click(object sender, EventArgs e)
{
txtContenedor.Text = "";
ExtraerFicherorDelSubDirectorio(Application.StartupPath);
}

Ahora el código de ExtraerFicherorDelSubDirectorio (string ruta) que es una función recursiva:

private void ExtraerFicherorDelSubDirectorio(string ruta)
{
DirectoryInfo oDirectorio = new DirectoryInfo(ruta);

//obtengo ls ficheros contenidos en la ruta
foreach (FileInfo file in oDirectorio.GetFiles())
{
txtContenedor.Text += file.Name+"\n";

}
//obtego los subdirectorios que cuelgan de la ruta
foreach (DirectoryInfo subdirectorios in oDirectorio.GetDirectories())
{
ExtraerFicherorDelSubDirectorio(subdirectorios.FullName);
}

}


Saludos.

1 comentario: