簡體   English   中英

非常大的 zip 文件(> 50GB)--> ZipException:無效的 CEN header

[英]Very large zip file (> 50GB) --> ZipException: invalid CEN header

我正在嘗試在 JAVA 中打開一個 ZIP 文件。

下面的代碼工作正常,除了一些大文件,在這種情況下我得到以下異常:

Exception in thread "main" java.util.zip.ZipException: invalid CEN header (bad signature)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:114)
at java.util.zip.ZipFile.<init>(ZipFile.java:75)

有已知的錯誤嗎? 會不會是因為 JAVA 不支持更高的壓縮級別?

請注意,我無法使用 Winzip 解壓縮文件,並且 Linux 下的 gzip 給出了有關數據長度的錯誤(解壓縮文件約為 80 GB)。 我不得不使用以下解決方法來解壓縮它:

gunzip -S .zip < file.zip > file

任何想法都會非常有幫助。

代碼:

if (file.getExtension().equals("gz")) {
  br = new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(name))));
}
else if (file.getExtension().equals("zip")) {
    ZipFile zipFile = new ZipFile(name); // <-------------------FAILS HERE
    Enumeration<? extends ZipEntry> entries = zipFile.entries();
    while (entries.hasMoreElements()) {
        ZipEntry zipEntry = entries.nextElement();
        System.out.println("ZIP File in the archive:" + zipEntry.getName());
        br = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry)));
        break;
    }
}

如果您沒有使用 Java 7(支持 ZIP64),問題可能是java 正在嘗試使用舊的 ZIP 格式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM