我正在尝试使用Gradle将多个.zip
文件从一个文件夹解压缩到另一个文件夹。我可以使用Gradle解压缩文件,但是我试图弄清楚如何可以解压缩目录中的所有.zip
文件,而不必指定每个.zip
文件的名称。我将提供一个例子,说明我目前拥有的东西。下面的代码没有,而且我不确定要实现所需的结果需要进行哪些更改,即从一个目录中解压缩所有文件并将解压缩的文件放到新目录中。
task unzip(type: Copy) {
from zipTree("$rootDir/destination_folder") {
include "**/*.zip"
into "$new_folder"
}
}
最佳答案
方法zipTree
解压缩单个.zip
文件,并返回FileTree
及其.zip
内部的所有文件。在当前代码中,Gradle将"$rootDir/destination_folder"
解释为.zip
文件的路径。它可能找不到该.zip
文件,但是即使它可以将包含的文件限制为与"**/*.zip"
匹配的文件,因此只能复制.zip
文件中的.zip
文件。
与直接使用只能解析单个zipTree
文件的.zip
相比,您需要以fileTree
开头以将.zip
文件收集到文件夹内。然后,您可以在以下每个文件上使用zipTree
:
task unzip(type: Copy) {
fileTree(dir: 'sourceDir', includes: ['**/*.zip']).each { zipFile ->
from zipTree(zipFile)
}
into 'targetDir'
}
关于java - 有没有办法使用gradle从文件夹解压缩多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63586961/