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は私にとっても理にかなっています...