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 方法期间将其写入磁盘。

高温高压

于 2010-08-30T09:17:36.373 回答