前言
上一篇写个批处理来帮忙干活—遍历&字符串处理中,我们已经学习如何写批处理脚本来帮我们做一些简单的重复性工作,本篇继续来学习如何用 Gradle 写脚本,让它也来帮我们干活
Gradle 脚本
需求场景跟上一篇一样,只是需要脚本能够帮我们遍历某个目录下的文件,然后分别针对每个文件执行 java 命令,再输出新的命名格式的文件即可,因此脚本涉及的方面仍然是:文件夹的遍历操作、字符串处理、执行 java 命令。下面开始学习吧:
1. 遍历指定文件夹下的文件
1.1 files()
命令:
files(file1, file2, file3, file4...) .each {
file ->
println file.name
}
解释:files() 方法可以理解成一个集合,通过参数往集合中添加元素,只要能将需要遍历的目录下的所有文件都通过参数,传给 files(),那么就可以直接通过 .each 来遍历集合中的每个元素,达到遍历文件夹的目的
示例:
def dir = new File("C:\Users\suxq\Desktop\outputs")
files(dir.listFiles()).each { file ->
println file.name
}
解释:可以结合 File 的 listFiles() 方法使用,这个方法刚好可以返回整个目录下的文件,刚好作为参数传给 files(),这样一来就可以达到遍历文件夹的目的了。
过滤:如果只想遍历目录下符合规则的文件,那么可以自定义过滤规则:
def outputs = file("C:\\Users\\suxq\\Desktop\\outputs")
files(dir.listFiles(new FilenameFilter() {
@Override
boolean accept(File dir, String name) {
//自定义过滤规则
return name.endsWith(".apk")
}
}))
.each { file ->
println file.name
}
1.2 fileTree()
命令:
fileTree(dirPath).each { file ->
println file.name
}
解释:fileTree 使用会比 files 更简单,只需要传入目录的路径,即可对目录下的文件进行遍历
示例: