0

Zip4j は、UNIX で作成された gz ファイルを開いたり抽出したりできません。7Zip は問題なくファイルを開きます。zip は暗号化されていません。ファイル内のファイル ヘッダーを読み取る前に (ホスト タイプなど) 設定するオプションはありますか。

    File file   =   new File("D:/unziptest/i6163795A140507230411.dl.gz");

    try {
        System.out.println(file.length());

        ZipFile zipFile                 =   new ZipFile(file);
        if (!zipFile.isEncrypted()){
            if(zipFile.getFileHeaders()!=null){
                List<FileHeader> files  =   zipFile.getFileHeaders();
                for(FileHeader fileHeader : files){
                    if(fileHeader!=null){
                        System.out.println(fileHeader.getFileName());
                    }
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

出力

16388
net.lingala.zip4j.exception.ZipException: zip headers not found. probably not a zip file
    at net.lingala.zip4j.core.HeaderReader.readEndOfCentralDirectoryRecord(HeaderReader.java:122)
    at net.lingala.zip4j.core.HeaderReader.readAllHeaders(HeaderReader.java:78)
    at net.lingala.zip4j.core.ZipFile.readZipInfo(ZipFile.java:425)
    at net.lingala.zip4j.core.ZipFile.isEncrypted(ZipFile.java:722)
    at UnzipFile.main(UnzipFile.java:35)
4

1 に答える 1

4

Zip と gzip は、ここで説明されているように、互換性のない 2 つの異なる圧縮形式です。テストする元のファイルはありませんが、GZipInputStreamでうまくいくはずです。

于 2014-05-10T23:58:19.743 に答える