1

Javaコードを使用して自己解凍型zip(ここにftp://ftp.dnr.state.oh.us/OilGas/Download/Production/By_Year/2010Production.exeにあります)を読み込もうとしていました。

私は3つのアプローチを試しました。1つはJavaでWinzip自己解凍(exe)zipファイルから読み取るにはどうすればよいですか?

2つ目は、exeファイルをダウンロードして名前をzipに変更し(チートが機能する可能性があると考えた)、それを読み取ろうとしました...どちらも機能しませんでした。

7-ZIP LZMA SDKを使用した最後の方法ですが、これも役に立ちません。

また、私はインターネット上の他のいくつかのリソースを調べましたが、何も役に立ちませんでした。誰か助けてくれませんか?

4

2 に答える 2

0

この場合、TrueZip が最適に機能します。(少なくとも私の場合)

自己解凍 zip の形式は code1 header1 file1 です (通常の zip の形式は header1 file1 です)。コードは、zip を抽出する方法を示しています。

Truezip 抽出ユーティリティは余分なバイトについて不平を言い、例外をスローしますが

ここにコードがあります

 private boolean Extract(String src, String dst, String incPath) {


    TFile srcFile = new TFile(src, incPath);
    TFile dstFile = new TFile(dst);
    try {
        TFile.cp_rp(srcFile, dstFile, TArchiveDetector.NULL);
    } catch (IOException e) {
       return true;
    }

    return true;
}

このメソッドは、Extract(new String("C:\2006Production.exe"), new String("c:\") , ""); のように呼び出すことができます。

ここから Truezip ソース ファイル パッケージ (jar) をダウンロードできますhttp://repo1.maven.org/maven2/de/schlichtherle/truezip/truezip-samples/7.5.5/truezip-samples-7.5.5-jar-with -依存関係.jar

コードにクラスをインポートする必要があります。

de.schlichtherle.truezip.file.TArchiveDetector をインポートします。de.schlichtherle.truezip.file.TFile をインポートします。

ファイルは c ドライブに抽出されます。ファイルに対して独自の操作を実行できます。これが役立つことを願っています。

ありがとう。

于 2012-07-02T16:37:29.823 に答える
-2

Apache Commons Compressはこれをサポートしています。

于 2012-07-02T04:11:29.403 に答える