0

在 ZipArchiveEntry 中如何定义文件名(被压缩的文件的名称是英文以外的外语)。当我定义

ZipArchiveEntry ze = new ZipArchiveEntry(filename);

它适用于linux机器但不适用于windows。请帮忙。

更新

使用 ZipArchiveEntry 我尝试使用外语名称压缩单个文件。压缩后,我从该 zip 中提取文件。在 linux 中,它会正确返回文件名。但在 Windows 文件名已损坏

使用 jdk 时也报告了同样的问题。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4244499

http://www.coderanch.com/t/454532/java/java/Corrupt-file-compression

4

1 回答 1

0

您可以使用 getEntries 方法隐式获取文件名

Enumeration<?> en = zip.getEntries();
ZipArchiveEntry zipEntry = null;
while (en.hasMoreElements()) {
    zipEntry = (ZipArchiveEntry) en.nextElement();
}

然后,您可以在 zipEntry 上调用 getName,以检查名称

"i18n name string".equals(zipEntry.getName())

希望能帮助到你。

于 2011-10-21T12:34:27.330 回答