Search code examples
filegroovydirectory-listing

Get a list of all the files in a directory (recursive)


I'm trying to get (not print, that's easy) the list of files in a directory and its sub directories.

I've tried:

def folder = "C:\\DevEnv\\Projects\\Generic";
def baseDir = new File(folder);
files = baseDir.listFiles();

I only get the directories. I've also tried:

def files = [];

def processFileClosure = {
        println "working on ${it.canonicalPath}: "
        files.add (it.canonicalPath);
    }

baseDir.eachFileRecurse(FileType.FILES, processFileClosure);

But "files" is not recognized in the scope of the closure.

How do I get the list?


Solution

  • This code works for me:

    import groovy.io.FileType
    
    def list = []
    
    def dir = new File("path_to_parent_dir")
    dir.eachFileRecurse (FileType.FILES) { file ->
      list << file
    }
    

    Afterwards the list variable contains all files (java.io.File) of the given directory and its subdirectories:

    list.each {
      println it.path
    }