我有大量数据,需要将其上传到github。所以我决定使用分割的zip文件,并让程序合并它们,然后解压缩它们。
private static void mergeSplitFiles(String path) {
System.out.println("Merging data from: " + path);
try {
ZipFile zip = new ZipFile(path + "/train.zip");
zip.mergeSplitFiles(new File(ORIGINAL_DATA + ".zip"));
} catch (ZipException e) {
e.printStackTrace();
}
}
合并看起来很棒,但是后来我尝试像这样解压缩:
private static void uncompressData(String path) {
System.out.println("Uncompressing data from: " + path);
new File(path).mkdir();
try {
ZipFile zip = new ZipFile(path + ".zip");
zip.extractAll(path);
} catch (ZipException e) {
e.printStackTrace();
}
}
此代码适用于手动压缩的数据,但无法合并。
试图手动解压缩合并的文件,它崩溃了,半路给我一个错误。我在maven中使用最新版本:
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.6.1</version>
</dependency>
我得到的错误是:
net.lingala.zip4j.exception.ZipException: Could not read corresponding local file header for file header: 2964082/61083998.txt
找不到任何东西
答案 0 :(得分:0)
显然,当使用该库创建分割文件时,它可以工作。用7zip或WinRar创建的文件无效。不得不修改程序以从原始日志中分割出的zip文件,而原始日志无法上传到Github,因此必须考虑到这一点。
Havent找到了手动(或其他库)生成的拆分zip文件的解决方案