Groovy - 在目录中压缩所有文件夹

时间:2011-02-05 21:14:32

标签: groovy zip directory

我有一个位于C:\Program Files\VideoEditing的文件夹,在那里我目前有大约30个文件夹,我想要压缩。在压缩它的同时,我想为每个新压缩的文件夹添加一个图像。 (图像位置为C:\Program Files\VideoEditing\art.png)。

我想知道是否/如何在groovy中实现这一点?

我的目标是在我的VideoEditing目录中最终得到60个文件/文件夹。 (30个是原件,30个带有图像的压缩版本)

我将继续搜索有关该主题的更多信息,但我想也可以将其发布,以防有​​人已经知道如何去做。

修改

基于andrei1089建议使用AntBuilder,我假设代码看起来像:

File file = new File('C:\\Program Files\\VideoEditing')

fileDir = []
def ant = new AntBuilder()
int i = 0

file.eachDir {
    fileDir << it
}

fileDir.each { 
    ant.zip(//new file name = VidFolder_$i,
        //include folder,
        //include art.png,)    
}

我不知道的是如何具体包含每个目录而不是某些文件类型。

2 个答案:

答案 0 :(得分:4)

文件集适用于简单案例

new AntBuilder().with {
  new File('src').eachDir {dir->
    zip destfile: "${dir.name}.zip", {
      fileset dir: dir
      fileset file: 'src/file.txt'
    }
  }
}

几乎可以直接应用的几个例子可以在

中找到

答案 1 :(得分:1)

您可以尝试使用AntBuilder。可以找到一些有用的示例here