0

ZipArchiveEntry でファイル名を定義する方法 (圧縮されたファイルには、英語以外の外国語で名前が付けられます)。私が定義するとき

ZipArchiveEntry ze = new ZipArchiveEntry(ファイル名);

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 に答える