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.
La potencia de Groovy para recursividad
Sección titulada «La potencia de Groovy para recursividad»Es en el caso de listar un directorio de forma recursiva dónde vemos, otra vez, la potencia de Groovy.
Listar un directorio con eachFile
Sección titulada «Listar un directorio con eachFile»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 listarListar recursivamente con eachFileRecurse
Sección titulada «Listar recursivamente con eachFileRecurse»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 listarExplicación del código
Sección titulada «Explicación del código»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.
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.