java - 有没有办法使用gradle从文件夹解压缩多个文件?

标签 java gradle build.gradle

我正在尝试使用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/

相关文章:

java - Java 中使用 commons HttpClient 的curl 等效项

gradle - 是否可以为内联Gradle任务定义属性

android - 多个dex文件在android studio中定义Landroid/support/v4/

android-studio - Android Studio 多进程运行

android - 解决重复的类依赖性-Gradle

github - 如何从Gradle Build中列出所有输出/生成文件?

java - 如何在 Canvas 中现有矩形的顶部添加矩形

java - 什么是企业应用程序的 JMX 替代方案

c# - PHP网站如何与Java、C#程序高效通信

android - 将库上传到 Bintray,但使用时无法解析