4

Apache Commons Compress ( https://commons.apache.org/proper/commons-compress/ )に代わる圧縮 Java ライブラリを探しています。Commons Compress は、deflate64 である「ENHANCED_DEFLATED」を使用して圧縮された zip エントリを読み取ろうとすると、エラーをスローします。例外をスローするサンプルの抜粋を次に示します。

public void doRecurseZip(File inputFile)
        throws IOException{
    ZipFile srcZip = null;
    srcZip = new ZipFile(inputFile);

    final Enumeration<ZipArchiveEntry> entries = srcZip.getEntries();
    while (entries.hasMoreElements()) {
        final ZipArchiveEntry srcEntry = entries.nextElement();
        String entryFilename = srcEntry.getName();
        String entryMimetype = "application/octet-stream";
        boolean canRead = srcZip.canReadEntryData(srcEntry);
        InputStream zipStream = srcZip.getInputStream(srcEntry);
        zipStream.close();
    }
    srcZip.close();
}

スタック トレースの関連部分は次のとおりです。

org.apache.commons.compress.archivers.zip.UnsupportedZipFeatureException: サポートされていない機能メソッド 'ENHANCED_DEFLATED' が org.apache.commons.compress.archivers.zip.ZipUtil.checkRequestedFeatures(ZipUtil.java:357) のエントリ test.docx で使用されていますorg.apache.commons.compress.archivers.zip.ZipFile.getInputStream(ZipFile.java:404) at ZippingAround.doRecurseZip(ZippingAround.java:23)

Commons Compress を置き換えることができる、または deflate64 圧縮方法のためにそれと連携して動作する可能性のある別の zip ライブラリを知っている人はいますか?

4

3 に答える 3

0

zlibには、contrib/infback9 ディレクトリに Deflate64 デコンプレッサ (C) があります。それをzipデコーダーに統合する必要があります。

于 2015-12-17T02:22:59.760 に答える