Ir al contenido

Listar un directorio de forma recursiva con 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 utilizábamos un closure de la siguiente forma:

def listar = { println it }
def directorio = "/users/victor/Documents"
println "Listando el directorio $directorio"
new File (directorio).eachFile listar

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.

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

Lo que hemos hecho es instanciar el directorio raíz sobre el que queremos empezar la recursividad. Para ello utilizamos la clase File. Y sobre este objeto utilizar el método 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.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Listar un directorio de forma recursiva con Groovy

Descubre cómo listar un directorio de forma recursiva en Groovy de manera sencilla y efectiva, optimizando tu código sin complicaciones innecesarias.

Descargar código