Gradle - 如何仅针对特定类型的文件在 fileTree 中进行迭代

标签 gradle filetree

在我的 gradle 任务中,我迭代 fileTree 并且一切正常:

myTask {
  fileTree("${project.projectDir}/dir").visit { FileVisitDetails details ->
    exec {
      //do some operations
    }
  }
}

但现在我的目录中有不同类型的文件:

dir
├── sub1
│   ├── file1.json
│   └── file2.js
├── sub2
│   ├── file1.json
│   └── file2.js
└── sub3
    ├── file1.js
    └── file2.json

如何仅迭代某些类型的文件?因为

"${project.projectDir}/folder/dir/**/*.json"

不起作用。

感谢您的建议

最佳答案

您应该使用matching来自 FileTree 的方法。它使用 PatternFilterable作为参数。

尝试一下:

fileTree("${project.projectDir}/dir").matching {
    include "**/*.json"
}.each {
    // do some operations
}

关于Gradle - 如何仅针对特定类型的文件在 fileTree 中进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53190618/

相关文章:

android - 失败 : Build failed with an exception gradle

android - 在Android Studio中,我收到一条错误消息,指出 “Packages unavailable”,并且我需要的软件包不可用

java - 使用堆栈在 Java 中制作文件/目录树

android - Gradle 项目刷新失败(AS 0.8.2,Mac)

android - 如何解决添加Firebase库失败的错误相关性

android - 任务 ':app:transformClassesAndResourcesWithR8ForDebug'的执行失败

javascript - jquery 文件树高亮选中

c - 在 c 中使用 ntfw 时跳过子目录

java - 如何获取 JTree 文件树中的节点以知道它是哪个文件?

java - 找到 .java 源文件对应的 .classpath 文件