我有一个压缩给定目录的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。