Ich muss nur. TXT-Dateien aus Ordner und Unterordner lesen und sie in eine Datei zusammenführen. Das Problem ist, wenn ich filter, es iteriert nur im Stammordner. Hier ist Code:Dateien lesen und zusammenführen JavaFX
public void walk(String path) {
FilenameFilter textFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".txt");
}
};
File root = new File(path);
File[] list = root.listFiles(textFilter);
if (list == null) return;
for (File f : list) {
if (f.isDirectory()) {
walk(f.getAbsolutePath());
System.out.println("Dir:" + f.getAbsoluteFile());
}
else {
System.out.println("File:" + f.getAbsoluteFile()
);
}
}
}
und DirectoryChooser Funktion:
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Open Folder");
File selectedDirectory =
directoryChooser.showDialog(null);
if(selectedDirectory == null){
pathLabel.setText("No Directory selected");
}else{
pathLabel.setText(selectedDirectory.getAbsolutePath());
}
walk(selectedDirectory.getAbsolutePath());
}
Was mache ich falsch?
Ihr Dateifilter schließt Unterverzeichnisse aus. Daher wird Ihre Schleife nur über TXT-Dateien iteriert und geht nie in Subdirects. – lwi