特定のディレクトリを圧縮するJavaアプリケーションがあります。特殊文字 (ウムラウト - ä、ö など) を含むファイルは省略されます。デバッグは、ファイルが存在しないため省略されていることを示しました
if(file.exists()) {
//zip it
} else {
System.err.println("file " + file.getAbsolutePath() + " does not exist!");
}
事は-私はファイルオブジェクトを取得します
File[] files = directory.listFiles();
そしてそれらを繰り返します。
for(File file : files) {
if(file.exists()) {
//zip file
} else {
System.err.println("...");
}
}
私が見たのは、の代わりにfile.getAbsolutePath()
次のパスを示していることです。/tmp/myspecialChar?File.txt
/tmp/myspecialCharÖFile.txt
ファイルを取得する方法についてのアイデア。残念ながら、すべての特殊文字は「?」に変換されます。そのため、マッピングを実装できません。リスト名も「?」を返します。正しい特殊文字の代わりに。
忘れる前に - JVM のバージョンは 1.6.31 です。