我需要解壓縮一組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 –