2017-03-08 4 views
0

Ich versuche, eine Anwendung zu schreiben, die alle Dateien in einem Ordner und seinen Unterordnern liest.Java - Sonderzeichen in Dateinamen

Das Problem sind Dateinamen mit Sonderzeichen wie 'ä', 'ü' und 'ö'. Diese werden als ' ' gelesen.

Ich entwickle das Programm in Eclipse Neon.2 Release (4.6.2) auf einem Arch Linux.

Ich habe Eclipse bereits auf UTF-8-Codierung eingestellt. Mein LANG ist nds_DE.UTF-8

und ich versuchte mehrere Möglichkeiten, um die Dateinamen (MyFile.listFiles(), DirectoryStream, FileUtils.listFiles (apache.common))

Ich weiß, dass meine Java lesen und Eclipse kann mit diesen Sonderzeichen umgehen, denn wenn sie in einer Textdatei erscheinen oder wenn ich sie einfach auf die Konsole drucke, werden sie korrekt gedruckt.

Hat jemand eine Idee, was ich versuchen kann oder warum diese Zeichen ein Problem beim Lesen von Dateinamen sind?

Danke

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

Zeigen Sie den Code, der falsche Ergebnisse liefert. – Kayaman

+1

Welches Betriebssystem verwenden Sie? – Jens

+0

Das Problem sind nicht Ihre UTF-Einstellungen, sondern Ihr Dateisystem. Nicht jedes Dateisystem kann alle Sonderzeichen verarbeiten. – pepan

Antwort

Verwandte Themen