Java Mac创建新的文件(路径) - 德语变音符号的路径

时间:2013-07-03 19:53:51

标签: java macos filesystems

我实际上是在尝试创建一个具有特定文件名的文件。问题是,文件名包含德语变音符号,所以我总是得到NullPointerException

代码如下所示:

File f = new File("/Volume/dir1/dir2/dirWithUmlauts");
File[] files = f.listFiles(); // NullPointerException

我在Windows上测试过相同的功能。我不知道为什么它在Mac上不起作用。

2 个答案:

答案 0 :(得分:0)

我不知道Mac OS将如何处理文件系统中的变音符号。但是如果目录可以从JVM中正确处理,它也必须在它中工作。

因此,请尝试通过以上listFiles()级别列出目录名称:

File d = new File("/Volume/dir1/dir2/"); 
for( File f : d.listFiles()) System.out.println(f.getName());

因此,您将看到String打开文件时的样子(也确实存在并可从VM访问);


<强> SOLUTION:

File.listFiles() mangles unicode names with JDK 6 (Unicode Normalization issues)

答案 1 :(得分:0)

您说您正在尝试创建文件,但您的代码列出了目录的内容。您(无意中)列出了文件的“文件夹内容”吗?根据{{​​3}}:“如果此抽象路径名不表示目录,则此方法返回null。”

因此,如果我怀疑您正在尝试列出非目录的内容,那么您的File []数组将为null。因此,当您尝试使用它时,您的代码将以NPE爆炸