2017-03-08 197 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

回答