2

TrueZip Java ライブラリを使用した経験のある人はいますか? サブフォルダーを含むアーカイブを解凍するという単純なタスクを実行しようとしていますが、これまでのところ、それを機能させることができませんでした。

(私が TrueZip を使用している理由は、java.util.zip メソッドのエンコーディングの外国文字のバグのためです)

API を見ると、 file.archiveCopyAllTo() が「解凍」メソッドのようです。ただし、以下のコードは、アーカイブがフラットでファイルのみが含まれている場合にのみ機能します。サブフォルダーがある場合は失敗します。

private static void testUnzip(String zipPath, File unzipFolder) 
{
    de.schlichtherle.io.File zipFile = new de.schlichtherle.io.File(zipPath);
    boolean result = zipFile.archiveCopyAllTo(unzipFolder);
    System.out.println("UNZIP RESULT: " + result);
}

または、ファイル名にASCII以外の文字が含まれている可能性のあるアーカイブを解凍する別の方法を誰かが知っていれば、それも素晴らしいでしょう...ありがとう!

編集: TrueZIP の使用をあきらめました。org.apache.tools.zip を使用して、ファイル名に非 ASCII 文字を含むファイルを抽出できました。そのAPIは私にとっても理にかなっています...

4

1 に答える 1

1

私のアプリケーションでは、追加する必要がありました

de.schlichtherle.io.File.umount(zipFile);

結果を確認するための最後のステートメントとして、(少なくとも一部のバージョンの) truezip は zip 全体をキャッシュし、umount メソッドの間のみディスクに書き込むようです。

HTH

于 2010-08-30T09:17:36.373 に答える