我需要解压缩一组zip文件。这不是一组zip文件,这是一个大的zip文件,根据大小的要求已被分成多个zip文件。使用Java解压缩多部分zip文件卷
例如,如果您有一个2.5MB的zip文件,并且您的邮件系统仅支持1MB文件,则可以要求Zip创建最多1MB的3个文件。
所以它创建了a.zip.001,a.zip.002,a.zip.003 ......不同的库命名它们的方式不同,但基本上它们都以相同的方式工作。
你如何在java中解压缩?它看起来不像std中的压缩库支持这个。
谢谢。
我需要解压缩一组zip文件。这不是一组zip文件,这是一个大的zip文件,根据大小的要求已被分成多个zip文件。使用Java解压缩多部分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<String> files = new TreeSet<String>();
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()
不保证按字母顺序排列。
我尝试过似乎有很多功能的chilkat,但它不支持多文件档案。即使在待办事项列表中也没有。 – awm
压缩文件如何分解成几部分? – Puce
可能是重复的http://stackoverflow.com/questions/8116443/how-do-you-uncompress-a-split-volume-zip-in-java –