合并2个大(500MB)拉链,可能包含同名文件/文件夹

时间:2017-01-04 10:45:26

标签: java zip file-handling outputstream zipfile

我在JAVA-spring应用程序中有这种情况,在将目录结构中的数据分类为zip文件后,我必须导出大量数据。由于数据量巨大,我正在分批获取它(一次说500个结果),将它们安排在类别和子类别中并将它们写入zip文件。由于获取和排列数据需要花费大量时间,因此我无法保持zipOutputStream打开这么长时间,所以我为每个批次创建新的zip,然后将其数据附加到主zip文件。

第一次获取后,假设我创建了这个zip文件:

batch_1.zip
|_Catg A
  |_SubCatg A
    |_FILE 1
    |_FILE 2
  |_SubCatg B
    |_FILE 3
|_Catg B
  |_SubCatg C
    |_FILE 498
  |_SubCatg D
    |_FILE 499
    |_FILE 500

同样,我为接下来的500个结果创建了一个zip:

batch_2.zip
|_Catg A
  |_SubCatg A
    |_FILE 501
|_Catg B
  |_SubCatg D
    |_FILE 999
|_Catg C
  |_SubCatg E
    |_FILE 555

现在,我必须合并这两个文件。两个zip文件都可能包含类别和子类别的目录。要检查现有文件夹,我需要迭代两个zip文件中的所有条目,这又是太昂贵了,因为可以有超过5000个结果,500个类别,2500 +子类别。

是否有其他方法可以处理这种情况。

0 个答案:

没有答案