Listar un directorio de forma recursiva con Groovy

06/Ene/2013 Groovy , , , , ,

Si echamos un vistazo a un programa en Java sobre cómo listar los ficheros de un directorio y el relacionado programa que lista un directorio de forma recursiva veremos que el primero puede ser sencillo, pero que listar de forma recursiva nos vemos obligado a realizar un grupo un poco más complejo de bucles.

Es en el caso de listar un directorio de forma recursiva dónde vemos, otra vez, la potencia de Groovy. Y es que si para listar un directorio en Groovy utilizabamos un closure de la siguiente forma:

  1. def listar = { println it }
  2. def directorio = "/users/victor/Documents"
  3.  
  4. println "Listando el directorio $directorio"
  5. new File (directorio).eachFile lista

El listar un directorio de forma recursiva con Groovy no nos llevará el utilizar ningún bucle, si no que simplemente deberemos de cambiar el método .eachFile por .eachFileRecurse y ya lo tenemos resuelto.

  1. def listar = { println it }
  2. def directorio = "/users/victor/Documents"
  3.  
  4. print "Listando el directorio $directorio de forma recursiva"
  5. new File (directorio).eachFileRecurse lista

Lo que hemos hecho es instanciar el directorio raiz sobre el que queremos empezar la recursividad. Para ello utilizamos la clase File. Y sobre este objeto utilizar el metodo .eachFileRecurse.

Cabe indicar que el closure que utilizamos es el mismo que cuando listábamos el directorio, ya que el iterador tiene el fichero y nosotros lo mostramos por consola.

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D