给定一个目录dir
dir
├── sub1
│ ├── file1
│ └── file2
├── sub2
│ ├── file1
│ └── file2
└── sub3
├── file1
└── file2fileTree('dir').each { println it }为我提供了以下内容:
dir/sub1/file1
dir/sub1/file2
dir/sub2/file1
dir/sub2/file2
dir/sub3/file1
dir/sub3/file2我只需要所有的目录和子目录,而不是所有的文件:
dir/
dir/sub1/
dir/sub2/
dir/sub3/我该怎么做?我看过DirectoryTree,但它没有扩展FileCollection (不像FileTree),所以它不是很有用。
发布于 2018-03-02 22:07:36
这样如何:
file('dir').eachFileRecurse(FileType.DIRECTORIES) { println it }提供:
dir/sub1/
dir/sub2/
dir/sub3/发布于 2018-03-03 21:27:21
你也可以这样做
FileTree dirs = fileTree('dir').matching {
include { FileTreeElement el -> el.directory }
}
doStuff(dirs)https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileTree.html#matching-groovy.lang.Closure- https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/util/PatternFilterable.html#include-groovy.lang.Closure- https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileTreeElement.html#isDirectory--
https://stackoverflow.com/questions/49070272
复制相似问题