返回介绍

文件操作 - 文件树

发布于 2020-07-06 13:40:57 字数 2869 浏览 995 评论 0 收藏 0

文件树就是一个按照层次结构分布的文件集合,例如,一个文件树可以代表一个目录树结构或者一个 ZIP 压缩文件的内容.它被抽象为 FileTree 结构,FileTree 继承自 FileCollection,所以你可以像处理文件集合一样处理文件树, Gradle 有些对象实现了FileTree 接口,例如 源集合.
使用 Project.fileTree() 方法可以得到 FileTree 的实例,它会创建一个基于基准目录的对象,然后视需要使用一些 Ant-style 的包含和去除规则.

例 15.5 创建文件树
build.gradle

  1. /以一个基准目录创建一个文件树
  2. FileTree tree = fileTree(dir: 'src/main')
  3. // 添加包含和排除规则
  4. tree.include '**/*.java'
  5. tree.exclude '**/Abstract*'
  6. // 使用路径创建一个树
  7. tree = fileTree('src').include('**/*.java')
  8. // 使用闭合创建一个数
  9. tree = fileTree('src') {
  10. include '**/*.java'
  11. }
  12. // 使用map创建一个树
  13. tree = fileTree(dir: 'src', include: '**/*.java')
  14. tree = fileTree(dir: 'src', includes: ['**/*.java', '**/*.xml'])
  15. tree = fileTree(dir: 'src', include: '**/*.java', exclude: '**/*test*/**')

就像使用文件集合一样,你可以访问文件树的内容,使用 Ant-style 规则选择一个子树。

例 15.6 使用文件树
build.gradle

  1. // 遍历文件树
  2. tree.each {File file ->
  3. println file
  4. }
  5. // 过滤文件树
  6. FileTree filtered = tree.matching {
  7. include 'org/gradle/api/**'
  8. }
  9. // 合并文件树A
  10. FileTree sum = tree + fileTree(dir: 'src/test')
  11. // 访问文件数的元素
  12. tree.visit {element ->
  13. println "$element.relativePath => $element.file"
  14. }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文