Listar un directorio de forma recursiva en Java Diciembre 27, 2008
Publicado por lineadecodigo en : Java , trackbackAyer veíamos como listar el contenido de un directorio con Java. En este ejemplo listabamos el contenido, saliendo como resultado los ficheros y directorios que contenía este.
En este caso lo que vamos a hacer es listar el contenido de los directorios de forma recursiva. Es decir, cada vez que nos encontremos un directorio dentro del directorio que estamos listando, entraremos en él y listaremos su contenido. Así de forma recursiva sobre todos los directorios.
En este caso vamos a crear un método listarDirectorio, el cual reciba un elemento File que sea un directorio.
Lo primero que haremos será recuperar la lista de ficheros del directorio a listar mediante el método .listFiles(). Este método nos devuelve un array de Files.
Mediante un bucle for iremos recorriendo el array y volcando el nombre del fichero mediante el método .getName().
for (int x=0;x<ficheros.length;x++){ }
Ahora viene la diferencia con respecto a listar el contenido de un directorio con Java. Y es que por cada elemento, además de volcar su nombre, comprobaremos si es un directorio mediante el método .isDirectory().
En el caso de que el elemento sea un directorio, volveremos a llamar al método listarDirectorio(), Pasándolo en elemento File que estamos tratando.
if (ficheros[x].isDirectory()){ String nuevo_separador; nuevo_separador = separador + " "; listarDirectorio(ficheros[x],nuevo_separador); }
En el código hemos insertado una variable separador, la cual añadirá un espacio en blanco cada vez que cambiemos de directorio.
Articulos Similares:
- Listar un directorio con Java
- Borrar un directorio con Java
- Listar un directorio con Java IO
- Crear un directorio con Java IO
- Listar contenido de un directorio con ASP
|- Reportar error en el código
Enviar entrada por email
|
Imprimir
| 4224 visitas





Comentarios»
[...] Listar un directorio de forma recursiva en Java [...]
[...] por las publicación Listar un directorio y Listar un directorio de forma recursiva (siempre en Java) de Linea de Codigo, volví a abrir mi IDE para escribir algo de Java y [...]
A ver si me pueden responder esta duda, uso un código prácticamente igual a este, lo que quiero es que cada ruta encontrada se guarde en un array de String’s, hago algo mas a o menos así:
static String [] listarr;
public static void listarDirectorio(File f){
File[] ficheros = f.listFiles();
for (int x=0;x<ficheros.length;x++){
listarr[x] = ficheros[x].getName();
…
Pero en la última línea (listarr[x] = ficheros[x].getName();) me da un NullPointerException y no sé porque.
Ayuda por favor
String [] listarr = new String[30];
@Aldo,
Es como comenta @nnnnnn, tienes que inicializar el array listarr.