用Java压缩一个CompressedFolders.rar文件中的多个文件夹

时间:2012-11-14 08:43:59

标签: java compression

美好的一天!

假设我有一个名为“数据”的文件夹,其中包含多个文件夹:

  • Data1_Folder。
  • Data2_Folder。
  • Data3_Folder。
  • Data4_Folder。

我需要只压缩Data2_Folder和Data3_Folder。换句话说,用户将决定他想要压缩哪些文件夹。

我正在使用 for循环从DB中读取所选ID的数据,并将这些数据写入单独的 excel 工作表中。所有文件都将存储在数据主文件夹下的 ID名称文件夹数据#_Folder )下。

在循环结束时,这些是创建文件并压缩它们的语句。

Excel.writeFile((String)DataID.get(i),TempArray);
Folder2Compress = new String[]{CompressingFolders.CompressFiles("D:\\Data/"+DataID.get(i).toString())};

不幸的是,只会压缩最后创建的文件夹。如何压缩所有选定的文件夹?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您只向阵列Folder2Compress添加一个文件夹。请改用List<String>并将所有文件夹添加到列表中:

List<String> folders = new ArrayList<String>();
for( .... ) {
    ...
    folders.add("D:\\Data/"+DataID.get(i));
}

现在,您可以更改CompressingFolders.CompressFiles()以将此列表作为输入,并将所有文件夹添加到结果中。

注意:您可能需要查看Java naming convention