2010-06-03 55 views
2

有沒有人有TrueZip java庫的經驗?我正在嘗試做一些簡單的任務,解壓縮包含子文件夾的檔案,至今我一直無法使其工作。TrueZip遞歸解壓縮?

(我使用TrueZip的原因是因爲在java.util.zip方法encoding foreign character bug)的

綜觀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更有意義,我也...

+0

呃,他們有自己的File類嗎?那會讓我迷惑到死亡。 – 2010-06-03 14:58:09

+0

你可以試試'zipFile.archiveCopyAllTo(unzipFolder,ArchiveDetector.DEFAULT,ArchiveDetector.NULL);' – cubanacan 2010-06-03 15:19:40

+0

如果它沒有幫助,那麼你應該使用TrueZIP 6或更高版本,它只用你的代碼遞歸解壓縮。 – cubanacan 2010-06-03 15:39:20

回答

1

在我的應用我不得不添加

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

的最後一條語句看到的結果,看來(至少某些版本的)truezip緩存整個zip文件並僅在umount方法中將其寫入光盤。

HTH