2017-03-08 160 views
0

我正在尝试编写一个应用程序,该应用程序读取文件夹及其子文件夹中的所有文件。Java - 文件名中的特殊字符

问题是具有特殊字符如'ä','ü'和'ö'的文件名。 这些被读作' '。

我在Eclipse linux上发布了Eclipse Neon.2 Release(4.6.2)中的程序。

我已经将Eclipse设置为UTF-8编码。 我LANG是nds_DE.UTF-8

,我尝试多种方法来读取文件名(MyFile.listFiles(),DirectoryStream,FileUtils.listFiles(apache.common))

我知道,我的Java而且Eclipse可以处理这些特殊字符,因为当它们出现在文本文件中或当我将它们打印到控制台时,它们会被正确打印。

有没有人有一个想法,我可以尝试或为什么这些字符在读取文件名时出现问题?

谢谢

Vector<Entry> entrys = new Vector<Entry>(); 
File[] files = new File(path).listFiles(); 
for(File f : files){ 
    System.out.println(f) 
    if(f.isDirectory()){ 
     entrys.addAll(readFilesInPath(f.getPath())); 
    }else{ 
     entrys.add(new Entry(f.getName(),f.getParent())); 
    } 
} 
return entrys; 
+1

显示给出错误结果的代码。 – Kayaman

+1

你使用哪个操作系统? – Jens

+0

问题不在于你的UTF设置,而在于你的文件系统。并非每个文件系统都可以处理所有特殊字符。 – pepan

回答