24

I have dir in which another task create files and directories so in this dir there are files, directories, subdirectroies, files in them and ect. I want to put all absolute path of files and directories in a list.

def listNames = project.fileTree('dir')

But only the files are included in the list, directories are missing. How to collect all of them?

Xelian
  • 16,680
  • 25
  • 99
  • 152

2 Answers2

32
def names = []
fileTree("baseDir").visit { FileVisitDetails details -> 
    names << details.file.path 
}

For further details, see FileTree in the Gradle Javadoc.

Peter Niederwieser
  • 121,412
  • 21
  • 324
  • 259
26

The shorter version:

def files =  fileTree("dirName").filter { it.isFile() }.files.name

Of course it does the same thing.

kasiacode
  • 600
  • 7
  • 15
  • 3
    Actually, your version just collects out files, while Peter's version collects directories and files. So they aren't the same. – Monte Creasor Aug 20 '17 at 19:39