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