首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Gradle删除不包含某些子目录的目录树?

Gradle是一种基于Groovy语言的构建工具,用于自动化构建、测试和部署Java项目。它支持多种编程语言和平台,并提供了丰富的插件生态系统,使开发人员能够轻松管理项目的依赖关系、构建过程和部署流程。

要使用Gradle删除不包含某些子目录的目录树,可以使用Gradle的文件操作API和过滤器功能。下面是一种可能的实现方式:

  1. 在项目的build.gradle文件中,添加以下代码:
代码语言:txt
复制
task deleteDirectories(type: Delete) {
    // 设置要删除的目录路径
    def rootDir = file('path/to/root/directory')
    
    // 设置要保留的子目录名称
    def excludedDirs = ['subdir1', 'subdir2']
    
    // 遍历根目录下的所有子目录
    rootDir.eachDir { dir ->
        // 检查子目录名称是否在排除列表中
        if (!excludedDirs.contains(dir.name)) {
            // 删除不在排除列表中的子目录
            delete dir
        }
    }
}
  1. 在命令行中执行以下命令,运行删除任务:
代码语言:txt
复制
gradle deleteDirectories

上述代码中,首先定义了一个名为deleteDirectories的任务,类型为Delete,用于删除目录。然后,设置了要删除的根目录路径和要保留的子目录名称列表。接下来,使用eachDir方法遍历根目录下的所有子目录,并检查子目录名称是否在排除列表中。如果不在排除列表中,则使用delete方法删除该子目录。

需要注意的是,根据实际情况修改代码中的路径和子目录名称列表。

Gradle相关的文档和资源:

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何使用PQ获取目录下所有文件夹名(不含文件和子目录)

今天想把之前发布Power BI示例文件文件夹做一个表出来,只获取该目录所有文件夹名,并不包含其中各种文件和子目录。 ? 因为每个文件夹中都包含多个文件,甚至还有子文件夹: ?...所以如果直接用“从文件夹获取数据”方式,PowerQuery会使用Folder.Files函数: ? Folder.Files会将所选目录下所有文件路径罗列出来: ?...以下是Folder.Contents说明: ? 这个就比较好了。它只返回所选目录文件夹名和文件名,并不会返回子文件夹下文件。...这样我们就得到了根目录所有文件夹名,和文件名。尤其是,空文件夹这里也出现了。 接下来就是从列表中只返回文件夹名。...再筛选TRUE行: ? 意思是查看属性,然后筛选那些是“目录行。 这样,就将该目录所有文件夹名获取到了。

6.9K20

Gradle 进阶学习之 文件操作

文件可以代表一个目录及其所有子目录文件,或者可以代表一个压缩文件(如 ZIP 文件)中内容结构。 文件不仅具有文件集合所有功能,还允许你访问文件相对路径和处理具有层级结构文件集合。...以下是如何创建和使用文件示例: 3.1 创建文件 // 第一种方式:使用路径创建文件对象,并指定包含文件 def tree = fileTree('src/main').include('**...你可以使用 include 和 exclude 方法来指定过滤条件,以包含或排除特定文件或目录。...通过使用文件,你可以更方便地处理复杂文件结构,执行批量文件操作,如复制、删除或分发文件。文件过滤功能也使得条件性文件操作变得简单,提高了构建脚本灵活性和可维护性。...,包括如何使用文件路径、文件集合、文件以及如何处理文件和目录相对路径等。

8310

Windows 技术篇 - 无需确认快速删除包含大量文件目录,cmd删除文件rmdir、del、erase和rd四种命令使用方法

一些非固态硬盘机器,传统删除大量文件会非常耗时。 使用 rmdir /S /Q D:\delete 命令可以无需确认更快速进行删除操作,其中 D:\delete 表示要删除文件夹。...RMDIR [/S] [/Q] [drive:]path RD [/S] [/Q] [drive:]path /S 除目录本身外,还将删除指定目录所有子目录和...用于删除目录。 /Q 安静模式,带 /S 删除目录时不要求确认 del、erase 命令详细说明如下: rmdir、rd 命令相比于 del、erase 命令会更快一些。...通配符可用来删除多个文件。 如果指定了一个目录,该目录所 有文件都会被删除。.../P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 删除所有子目录指定文件。

5K41

Java编程思想第五版(On Java 8)(二)-安装Java和本书用例

在开始学习 Java 之前,你必须要先安装好 Java 和本书源代码示例。因为考虑到可能有“专门初学者”从本书开始学习编程,所以我会详细地教你如何使用命令行。...目录用来保存文件和其他目录目录就好比分支。如果书籍是你系统上一个目录,并且它有两个其他目录作为分支,例如数学和艺术,那么我们就可以说你有一个书籍目录,它包含数学和艺术两个子目录。...移动到上级目录 pushd 记住来源同时移动到其他目录,popd 返回来源 目录列举: ls 列举出当前目录下所有的文件和子目录名(包含隐藏文件),...Gradle 基础任务 本书构建大量 Gradle 任务都可以自动运行。Gradle 使用约定大于配置方式,简单设置即可具备高可用性。本书中“一起去骑行”某些任务不适用于此或无法执行成功。...以下是你通常会使用 Gradle 任务列表: 编译本书中所有 java 文件,除了部分错误示范 gradlew compileJava 编译并执行 java 文件(某些文件是库组件

95441

【Golang语言社区】Go语言操作注册表思路

有效子目录为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录。  /v EntryName  比较子项下特定项。 ...有效子目录为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录。  KeyName2  指定子项目的地完整路径。...有效子目录为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录。  /s  复制指定子项下所有子项和项。 ...有效子目录为 HKLM、HKCU、HKCR、HKU 以及 HKCC。  /v EntryName  删除子项下特定项。如果未指定项,则将删除子项下所有项和子项。 ...有效子目录为 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定远程计算机,则只可使用 HKLM 和 HKU 子目录。  /v EntryName  返回特定项及其值。

2.8K70

如何复制 OR 删除 200 万个小文件,而且电脑卡?

: 参数解释: /S :: 复制子目录,但不复制空子目录。.../E :: 复制子目录,包括空子目录。 /LEV:n :: 仅复制源目录前 n 层。 /Z :: 在可重新启动模式下复制文件。 /B :: 在备份模式下复制文件。.../TIMFIX :: 修复所有文件文件时间,即使是跳过文件。 /PURGE :: 删除源中不再存在目标文件/目录。 /MIR :: 镜像目录(等同于/E 和/PURGE)。.../A-:[RASHCNET] :: 从复制文件中删除给定属性。 /CREATE :: 仅创建目录和长度为零文件。 /FAT :: 仅使用 8.3 FAT 文件名创建目标文件。.../S 表示除目录本身外,还将删除指定目录所有子目录和文件。 /Q 表示安静模式,删除时不需要经过确认。

2.8K51

Gradle For Android(5)--管理多Module编译

多Module构建 通常一个多Module工程会有一个根目录,而它子目录包含了所有的Module。...为了告诉Gradle这个Project结构,这个目录包含了所有要构建Modules,并且会有一个settings.gradle文件放在这个Project目录下。...如果想要使用子目录来组成Module的话,Gradle也可以进行配置,例如下面的工程结构: project ├─── setting.gradle ├─── build.gradle ├─── app...如果这些子目录都有自己build.gradle文件,那么Gradle就会处理这些,并且把他们添加到构建过程Model中。这也就是为什么你应该在Module中使用相对于根目录路径进行依赖。...Gradle总是会根据根目录来配置依赖关系。 一旦你知道了构建过程Model是如何把他们放到一起时候,我们也就知道了配置多Module构建配置。

2.4K30

速读原著-Gradle 在大型 Java 项目上应用

', 'ear' 我们将需要加入到项目构建中子项目配置在 settings.gradle 文件中,而没有加入不需要config 子目录。...比如在我所在项目, 就专门提供了一个 config 子目录,里面存放了所有的配置信息。...2.3更复杂情况 上面介绍了在项目中如何使用Gradle 处理properties 和xml 文件中具有相同配置,但其中一些值并不相同情况 。...与其他分析工具不同是,PMD 通过静态分析获知代码错误,即在运行Java 程序情况下报告错误。PMD 附带了许多可以直接使用规则, 利用这些规则可以找出 Java 源程序许多问题。...由于篇幅有限,本文只是我在一个大型 Java 项目上使用 Gradle 部分经验,并未涵盖所有Gradle 相关知识,包括如何编写 Gradle 插件以及 Gradle 对其他语言构建,读者可以通过阅读

1.9K10

.gitignore 生效问题

所以想使用 .gitignore 文件忽略这些文件夹。 然后在 .gitignore 添加忽略后,还是生效。如下: ?...所以第一反应是 .gitignore 规则无效 .gitignore 规则 生效 我们一起来看下,生效也就是有2种问题: 规则写错(很多朋友不看官方文档,使用idea 直接 add -> .gitignore...,用于否定模式;先前模式排除所有匹配文件将再次包含在内。如果排除了该文件目录,则无法重新包含该文件。...如果只想将此限制于目录而不是其子目录,则可以在模式前面加上斜杠,即/hello.;模式现在匹配hello.txt,hello.c但是 匹配a/hello.java。...hello.c”(常规文件) ),因为该模式中星号与其中带有斜线“ bar / hello.c”匹配 ---- 删除加入 git 管理无用文件 由于疏忽 直接使用 git add -A ,把无用文件纳入

3.5K21

在Linux中使用find命令行查找文件

在/var/www/下面的整个目录中搜索以.html结尾文件。 基本示例 命令 描述 find . -name testfile.txt 在当前和子目录中找到名为testfile.txt文件。...-O3 允许find根据资源和可能性有效使用自动重新排序搜索。成功 -maxdepth X 搜索当前目录以及所有X级别的子目录。 -iname 搜索时不考虑文本情况。...与-exec一起运行命令在find进程目录中执行。使用-execdir在匹配所在目录中执行指定命令。这可能会减轻安全问题,并为某些操作产生更理想性能。...如何在Linux命令行查找和删除文件 警告 请谨慎使用此选项。 将-delete选项添加到匹配表达式末尾,这样就能删除所有匹配文件。请务必确定查找结果与您要删除文件匹配。...在以下示例中,find查找从当前目录开始并完全递归到目录层次结构中所有文件。在此示例中,find将删除以.bak字符结尾所有文件: find .

4K20

Git忽略规则.gitignore梳理

通配单个字符 以方括号“[]”包含单个字符匹配列表; 以叹号“!”.../* 说明:忽略目录 fd1 下全部内容;注意,不管是根目录 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略; b)规则:/fd1/* 说明:忽略根目录 /fd1/.../fw/sf/ 说明:忽略全部内容,但是忽略 .gitignore 文件、根目录 /fw/bin/ 和 /fw/sf/ 目录; ----------------------------------...a)使用命令行增加排除文件  排除以.class结尾文件 echo “*.class” >.gitignore (>> 是在文件尾增加,> 是删除已经存在内容再增加),之后会在当前目录下生成一个.gitignore...b)但在这里,我们规定一定要把.gitnore文件放到某个工程下面,而是任何地方,比如我们这里放到了Git默认Home路径下,比如:/home/wangshibo/hqsb_ios c)使用命令方式可以配置全局排除文件

1.5K30

Git忽略规则.gitignore梳理

通配单个字符 以方括号“[]”包含单个字符匹配列表; 以叹号“!”.../* 说明:忽略目录 fd1 下全部内容;注意,不管是根目录 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略; b)规则:/fd1/* 说明:忽略根目录 /fd1/.../fw/sf/ 说明:忽略全部内容,但是忽略 .gitignore 文件、根目录 /fw/bin/ 和 /fw/sf/ 目录; ----------------------------------...a)使用命令行增加排除文件 排除以.class结尾文件 echo “*.class” >.gitignore (>> 是在文件尾增加,> 是删除已经存在内容再增加),之后会在当前目录下生成一个.gitignore...b)但在这里,我们规定一定要把.gitnore文件放到某个工程下面,而是任何地方,比如我们这里放到了Git默认Home路径下,比如:/home/wangshibo/hqsb_ios c)使用命令方式可以配置全局排除文件

99770

【Linux系统编程】基础指令(一)

-c 或–no-create 建立任何文档。 -d 使用指定日期时间,而非现在时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令兼容性问题。...,如何找到目录下最大文件) -R 列出所有子目录文件;(递归) -1 一行只输出一个文件; 例如: ls 这里我们就通过ls指令查看到了我们之前使用touch指令创建test.txt文件;...在指定目录情况下,默认会显示该目录及其子目录树状结构。 功能: tree命令用于以树状结构显示目录内容。它会递归地列出目录所有子目录和文件。...rmdir指令: 语法: rmdir [选项][目录名] 适用对象: 具有当前目录操作权限所有使用者,这里权限我们后续学习 功能: 删除目录 常用选项: -p 当子目录删除后如果父目录也变成空目录的话...语句用来询问你是否确认删除该文件,回答y(yes)或n(no)即可; 例如: rm -r dirname 我们先使用tree命令查看当前目录下所有文件及子目录,发现这里有一个子目录,两个文件,如下图所示

11010

Gradle 进阶学习 之 Task

工程:在Gradle中,工程就像是一棵大树,有主干(主工程)和分支(子工程),这与Maven中项目和模块概念相似。...内容:settings文件里主要记录了项目的名字,以及它包含所有子项目的名字。 位置:这个文件必须放在项目的最顶层目录,也就是根工程目录下。...每个任务可以包含特定行为,比如执行某些命令或脚本。理解任务配置和执行阶段对于掌握Gradle使用至关重要。...通过指定任务类型,你可以利用 Gradle 提供内置功能来执行特定构建任务。以下是一些常见内置任务类型及其作用: 任务类型 作用 Delete 删除文件或目录。...任务,使用 Delete 任务类型来删除指定目录

19710

【linux学习指南】linux指令与实践文件编写

像是一个多叉层次结构。.../home 包含每个用户个人目录,用户可以在自己目录中存储文件和设置。 /lib 包含系统级共享库文件,供系统和应用程序使用。...-c 或–no-create 建立任何文档。 -d 使用指定日期时间,而非现在时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令兼容性问题。...语法:rmdir [-p][dirName] 适用对象:具有当前目录操作权限所有使用者 功能:删除目录 常用选项: -p 当子目录删除后如果父目录也变成空目录的话,就连带父目录一起删除。...(目录类型识别) -r 对目录反向排序。 -t 以时间排序。 -s 在l文件名后输出该文件大小。(大小排序,如何找到目录下最大文件) -R 列出所有子目录文件。

7910

SonarQube系列-通过配置扫描分析范围,聚焦关键问题

列表中目录意味着包含所有可分析文件和其下方目录递归。列表中单个文件表示包含该文件。 路径是相对于项目基目录进行解释。基目录由您正在使用扫描程序定义。在大多数情况下,这是项目的根目录。...(唯一例外是上面讨论全局排除参数) 特定文件排除和包含 如果项目的目录结构没有在顶层将源代码与测试代码完全分开,则可能需要使用排除项和包含项来调整范围。...=src/main/java/org/sonar/* # 排除bank目录及其子目录所有文件 sonar.exclusions=bank/**/* # 排除bank目录及其子目录所有.cs文件...``=src/**/test/**/*结果是要扫描源文件集是减去每个子目录所有内容:src test 要定义测试文件,首先设置为整个目录:sonar.tests= src/ 然后将「“测试文件包含...该值是相对于当前工作目录路径匹配模式逗号分隔列表。 忽略问题 可使用SonarQube忽略某些组件和某些编码规则问题。

79320

Java8NIO新文件IO到底有多好用?

出于某种原因,它们没有包含删除目录相关方法 删除目录方法实现依赖于 Files.walkFileTree(),“walking” 目录意味着遍历每个子目录和文件。...() 实现删除文件和删除目录。...要获取目录全部内容流,请使用 Files.walk()。 文件系统 为了完整起见,我们需要一种方法查找文件系统相关其他信息。...当目标事件发生时,会返回一个包含 WatchEvent Watchkey 对象。 如果说"监视这个目录",自然会包含整个目录和下面子目录,但实际上:只会监视给定目录,而不是下面的所有内容。...如果需要监视整个目录,必须在整个每个子目录上放置一个 Watchservice。 文件查找 粗糙方法,在 path 上调用 toString(),然后使用 string 操作查看结果。

46020

Java8编程实战-nio.file新文件IO API

这个版本代码中包含 id,以便于跟踪输出结果: ? ? ? 目录 Files 工具类包含大部分我们需要目录操作和文件操作方法。出于某种原因,它们没有包含删除目录相关方法 ?...删除目录方法实现依赖于 Files.walkFileTree(),“walking” 目录意味着遍历每个子目录和文件。...要获取目录全部内容流,请使用 Files.walk()。 文件系统 为了完整起见,我们需要一种方法查找文件系统相关其他信息。...当目标事件发生时,会返回一个包含 WatchEvent Watchkey 对象。 如果说"监视这个目录",自然会包含整个目录和下面子目录,但实际上:只会监视给定目录,而不是下面的所有内容。...如果需要监视整个目录,必须在整个每个子目录上放置一个 Watchservice。 文件查找 粗糙方法,在 path 上调用 toString(),然后使用 string 操作查看结果。

49710

Windows 系统中常见 Shell 命令总结(不时补充)

文章目录 前言 一、调出电脑 Windows IP 配置 二、生成文件目录结构 三、创建文件夹 四、删除目录 五、显示目录和文件 六、进入目录 七、删除文件 八、删除目录并同时删除目录子目录以及文件...8.1、del 其他命令说明 总结 ---- 前言 Windows 命令提示符(cmd.exe)是 Windows NT 下一个用于运行 Windows 控制面板程序或某些 DOS 程序shell...二、生成文件目录结构 文件目录下输入如下代码,会在文件项目文件夹生成 list.txt 文件: tree /f>list.txt ? ? 生成文件目录结构如下图所示: ?...三、创建文件夹 如创建 Test 文件夹,代码如下: md Test 四、删除目录 删除目录,但是目录中不能有子目录和文件,如删除 Test 空目录,代码如下: rd Test 五、显示目录和文件...dir 六、进入目录 如进入 Test 目录,代码如下: cd Test 七、删除文件 删除文件,如删除 Test 文件,代码如下: del Test 八、删除目录并同时删除目录子目录以及文件 删除目录并同时删除目录子目录以及文件

96031
领券