使用Java解压缩多部分zip文件卷

我需要解压缩一组zip存档文件。 这不是一组zip文件,这是一个大的zip文件,根据大小要求分解为多个zip文件。

例如,如果您有一个2.5MB的zip文件,并且您的邮件系统仅支持1MB文件,您可以要求Zip创建最多1MB的3个文件。

所以它创建了a.zip.001,a.zip.002,a.zip.003 ……不同的库为它们命名不同,但基本上它们都以相同的方式工作。

你如何在java中解压这个? 它看起来不像std中的压缩库支持这一点。

谢谢。

尝试将所有文​​件连接到一个文件中,然后提取单个文件。 就像是:

File dir = new File("D:/arc"); FileOutputStream fos = new FileOutputStream(new File( "d:/arc/archieve-full.zip")); FileInputStream fis = null; Set files = new TreeSet(); for (String fname : dir.list()) { files.add(fname); } for (String fname : files) { try { fis = new FileInputStream(new File(dir.getAbsolutePath(), fname)); byte[] b = new byte[fis.available()]; fis.read(b); fos.write(b); } finally { if (fis != null) { fis.close(); } fos.flush(); } } fos.close(); ZipFile zipFile = new ZipFile("d:/arc/archieve-full.zip"); /*extract files from zip*/ 

更新:使用TreeSet对文件名进行排序,因为dir.list()不保证按字母顺序排序。

    Interesting Posts