jump to navigation

Listar un directorio de forma recursiva en Java Diciembre 27, 2008

Publicado por lineadecodigo en : Java , trackback

Ayer 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.

  1. public static void listarDirectorio(File 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().

  1. for (int x=0;x<ficheros.length;x++){
  2. System.out.println(separador + ficheros[x].getName());
  3. }

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.

  1. if (ficheros[x].isDirectory()){
  2. String nuevo_separador;
  3. nuevo_separador = separador + " ";
  4. listarDirectorio(ficheros[x],nuevo_separador);
  5. }

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:

|- Descargar el código
|- Reportar error en el código

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 4224 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (Todavia sin evaluar)
Loading ... Loading ...

Comentarios»

1. Linea de Codigo » Borrar un directorio con Java - Diciembre 28, 2008

[...] Listar un directorio de forma recursiva en Java [...]

2. ls (list directory) recursivo en Java - Enero 5, 2009

[...] 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 [...]

3. Aldo - Febrero 23, 2010

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 :(

4. nnnnnn - Marzo 17, 2010

String [] listarr = new String[30];

5. lineadecodigo - Marzo 22, 2010

@Aldo,

Es como comenta @nnnnnn, tienes que inicializar el array listarr.


Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen