【发布时间】:2012-09-12 15:17:01
【问题描述】:
我有以下代码:
public static void main( String[] args ) {
System.out.println(Locale.getDefault());
File f = new File("/Users/johngoering/Documents");
File[] fs = f.listFiles();
for (File ff : fs) {
System.out.println(ff.getName());
System.out.println(ff.exists());
}
}
在我的 Documents 文件夹中,我有一个名为“öß.pdf”的文件。这是 Java 6 下的输出:
en_US
(...)
öß.pdf
true
(...)
但这里是 Java 7 下的输出:
en_US
(...)
o����.pdf
false
(...)
特别注意file.exists 为listFiles 返回的文件返回false!!
是什么赋予了?有没有什么办法解决这一问题?这似乎是 Java 7 的错误......
【问题讨论】:
-
呃……看看代码? System.out
-
在终端输出Java控制台还是IDE控制台?
-
但是特别注意 file.exists... 为什么 file.exists 会是假的?
-
使用 JAR 启动器(即双击)启动的应用程序也是如此:它们看不到任何带有变音符号的文件。由于 File.exists = false,任何目录过滤器都会消除这些 - 它们根本不会出现。所以这需要修复 - 我不能一直从 Eclipse 运行我的应用程序!
标签: java macos file encoding java-7