仅限Gradle FileTree目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅限Gradle FileTree目录相关的知识,希望对你有一定的参考价值。
给定一个目录dir
:
dir
├── sub1
│ ├── file1
│ └── file2
├── sub2
│ ├── file1
│ └── file2
└── sub3
├── file1
└── file2
fileTree('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
),所以它不是很有用。
答案
那这个呢 :
file('dir').eachFileRecurse(FileType.DIRECTORIES) { println it }
给:
dir/sub1/
dir/sub2/
dir/sub3/
另一答案
你也可以这样做
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--
以上是关于仅限Gradle FileTree目录的主要内容,如果未能解决你的问题,请参考以下文章
Gradle - 如何仅针对特定类型的文件在 fileTree 中迭代