通过 gradle FileTree.include 删除目录

2023-12-22

我想说:

clean.delete(fileTree("a") {
   include "subdir/"
   include "aFile"
})

删除目录“subdir”和文件“aFile”。但“subdir”并没有被删除。我可以明确地列出它:

clean.delete("a/subdir")

但这比我想要的更加重复。可以使用 fileTree.include 来完成这项工作吗?

到目前为止我已经想出了:

[ "subdir",
  "aFile",
  ...
].each { it -> 
   clean.delete("a/$it") 
}

但这有点尴尬。


恐怕这是不可能的。看到这个讨论 http://forums.gradle.org/gradle/topics/how_do_i_delete_a_subset_of_files在 Gradle 论坛上。讨论导致了这样的结果issue http://issues.gradle.org//browse/GRADLE-2822.

一个简单的测试表明

task makeDir << {
    ['a', 'a/subdir'].each { new File(it).mkdirs() }
    new File('a/aFile').createNewFile()

    def tree = fileTree('a') {
        include 'subdir/'
        include 'aFile'
    }

    tree.each {File file ->
        println file
    }
}

当遍历目录时,仅打印文件而不打印目录。您的解决方案很好,但您可以保存一些字符:

[ "subdir",
  "aFile",
  ...
].each { clean.delete("a/$it") }

所以 fileTree 仅适用于目录树中的文件,而不适用于目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 gradle FileTree.include 删除目录 的相关文章

随机推荐

  • 如何创建用于运行时排序的表达式树?

    使用实体框架 4 我尝试根据成员名称集合实现动态排序 基本上 用户可以选择要排序的字段以及排序的顺序 我看过表达式树示例 但无法将其拼凑在一起 以下是一些细节 列名集合 public List
  • NodeJS:这段代码是否可以多核运行?

    我使用这个节点脚本作为我的项目的 运行程序 需要同时启动 停止三个脚本 现在我想知道从节点进程内部生成的 child process 是否会使用我的服务器拥有的多核 我有 90 的信心认为是 但安全总比抱歉好 var CP require
  • 如何在 C 中声明常量函数指针数组?

    我需要声明一个指向函数的指针数组 如下所示 extern void function1 void extern void function2 void void MESSAGE HANDLERS void function1 functio
  • Blob 不可写

    当我尝试使用 azure 进行 azure db 备份时rm command New AzureRmSqlDatabaseExport 我面临以下问题 Error encountered during the service operati
  • 使用 cordova 设置 android project.properties 文件中的值

    TL DR 我有一个针对 iOS 和 Android 的 cordova 应用程序 有没有办法使用config xml设置 cordova 生成的文件中的值platforms android project properties 更多细节
  • 将数据源设置为 MediaPlayer 中的原始 ID

    在 MediaPlayer create 方法中 可以使用原始文件的 id 但如何在 setDataSource 方法中使用它 参考源码android media MediaPlayer http grepcode com file rep
  • 使用 Instagram gem 获取所有用户的照片

    我想使用 Instagram gem 获取我的所有照片 https github com Instagram instagram ruby gem https github com Instagram instagram ruby gem
  • ios 6 uiwebview 使用 jquery scrolltop 滚动页面时显示背景

    我有一个网页显示在 UIWebView 中 该网页使用 jquery scrollTop 使用 1 6 4 版本的 jquery 在页面加载后将窗口滚动到指定位置 这在 4 5 之前的 xcode 上工作得很好 在我使用 xcode 4 5
  • Delphi 中的 System.IsConsole 什么时候为真?

    根据 System pas 它被记录为True if compiled as console app 在System pas中 还有一个赋值 IFDEF LINUX IsConsole True 我有一个奇怪的问题 使用 ShellExec
  • sqlalchemy 中的 python 继承

    所以我对 python 和 sqlalchemy 很陌生 我需要一些继承或混合 而不是继承 方面的帮助 我有一些伪代码 但我还没有真正取得任何进展 Base declarative base class ModelBase Base Bas
  • 给定两个顶点绕中心点旋转线

    我一直在尝试将一堆线旋转 90 度 它们一起形成多段线 每条线包含两个顶点 例如 x1 y1 和 x2 y2 我目前正在尝试做的是绕线的中心点旋转 给定中心点 x1 x2 和 y1 y2 由于某种原因 我不太懂数学 我无法让线条正确旋转 有
  • .NET 4.5 中的内存模型发生了哪些变化?

    我刚刚在 Peter Richtie 博客中读到了这令人费解的一行 我需要帮助才能理解其含义Prior to NET 4 5 you really programmed to the NET memory model http msmvps
  • 在 Flex 中循环元素内的元素

    我在 Flex 4 中有以下功能 protected function initEventHandlers void imageContainer addEventListener DragEvent DRAG ENTER acceptDr
  • 如何序列化/反序列化哈希图?

    我有一个包含数百万个条目的大型哈希图 我想将其持久化到磁盘 这样当再次从磁盘读取它时 我就没有将键值对再次插入到映射中的开销 我正在尝试使用谷物图书馆来做到这一点 但似乎HashMap http hackage haskell org pa
  • Javafx 2 树视图过滤

    如何在 JavaFX 2 中过滤节点TreeView 我有一个TextField我想根据内容过滤所有节点 例如节点标签 TextField Thanks 这是我编写的可重复使用的可过滤树项目类 过滤器应该绑定在谓词属性 你呢must use
  • 根据Text动态获取UILabel的高度对于iOS 7.0和iOS 6.1返回不同的值

    我正在使用此方法动态获取 UILabel 的高度 CGSize GetSizeOfLabelForGivenText UILabel label Font UIFont fontForLabel Size CGSize LabelSize
  • 将文本读取为 UTF-8 编码

    假设我编写一个函数来解析包含德语的输入流 下面是一个玩具示例 以下内容在我的机器上有效 因为 UTF8 是标准 readLines textConnection Z rich readLines textConnection Z u00FC
  • drawRect 和 CGGraphicsContext 如何工作?

    我正在处理 Core Graphic 中的一些内容 并且正在寻找有关几个主题的一些额外说明 绘制矩形 我对此有所了解 并且知道这是 UIView 的所有绘图方面的所在 但我只是不清楚幕后发生的事情 当我创建一个 UIView 并填写 dra
  • 现在有什么好的 Eclipse 持续测试插件吗?

    我用过麻省理工学院持续测试 http groups csail mit edu pag continuoustesting 插件在过去 但它早已过时 并且不再与任何接近现代版本的 Eclipse 兼容 有人有好的替代品吗 免费自然是首选 我
  • 通过 gradle FileTree.include 删除目录

    我想说 clean delete fileTree a include subdir include aFile 删除目录 subdir 和文件 aFile 但 subdir 并没有被删除 我可以明确地列出它 clean delete a