【问题标题】:Cannot decompress merged zip file in java无法在java中解压缩合并的zip文件
【发布时间】:2020-07-06 17:59:15
【问题描述】:

我的数据量很大,需要上传到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

什么都找不到

【问题讨论】:

    标签: java maven merge zip zip4j


    【解决方案1】:

    显然,当使用库制作拆分文件时,它可以工作。使用 7zip 或 WinRar 制作的文件不起作用。不得不修改程序以从原始日志中拆分 zip,而原始日志无法上传到 Github,因此必须考虑到这一点。

    尚未找到手动(或其他库)生成拆分 zip 文件的解决方案

    【讨论】:

      最近更新 更多