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

用Java将多个文件夹压缩到一个CompressedFolders.rar文件中,java,compression,Java,Compression,你好 假设我有一个名为“Data”的文件夹,其中包含多个文件夹: 数据1_文件夹 数据2_文件夹 数据3_文件夹 数据4_文件夹 我只需要压缩Data2_文件夹和Data3_文件夹,换句话说,用户将决定要压缩哪些文件夹 我正在使用一个for循环从数据库中读取所选ID的数据,并将这些数据写入单独的excel表格中。所有文件都将存储在主数据文件夹下的ID name文件夹下(Data#u文件夹下) 在循环结束时,这些语句用于创建文件并对其进行压缩 Excel.writeFile((String)D

你好

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

  • 数据1_文件夹
  • 数据2_文件夹
  • 数据3_文件夹
  • 数据4_文件夹
我只需要压缩Data2_文件夹和Data3_文件夹,换句话说,用户将决定要压缩哪些文件夹

我正在使用一个for循环从数据库中读取所选ID的数据,并将这些数据写入单独的excel表格中。所有文件都将存储在主数据文件夹下的ID name文件夹下(Data#u文件夹下)

在循环结束时,这些语句用于创建文件并对其进行压缩

Excel.writeFile((String)DataID.get(i),TempArray);
Folder2Compress = new String[]{CompressingFolders.CompressFiles("D:\\Data/"+DataID.get(i).toString())};
不幸的是,只有最后创建的文件夹将被压缩。如何压缩所有选定的文件夹


提前谢谢

只向数组添加一个文件夹
Folder2Compress
。改为使用
列表
,并将所有文件夹添加到列表中:

List<String> folders = new ArrayList<String>();
for( .... ) {
    ...
    folders.add("D:\\Data/"+DataID.get(i));
}
List folders=new ArrayList();
对于(……){
...
文件夹。添加(“D:\\Data/”+DataID.get(i));
}
现在,您可以更改
CompressingFolders.CompressFiles()
,将此列表作为输入,并将所有文件夹添加到结果中

注意:您可能需要查看