# Mehrere Dateien nacheinander einlesen



## techdevil (23. Mrz 2010)

Hi,

ich suche eine Möglichkeit, um alle Dateien beliebigen Namens in einem bestimmten Ordner hintereinander mit Scanner einzulesen. Beispielsweise alle Dateien *.* im Ordner c:\data


----------



## nrg (23. Mrz 2010)

holst dir mit listFiles (Klasse File) eine Liste aller Dateien/Ordner in einem Ordner. Iterierst drüber und prüfst jede Datei/Ordner mit isFile ab und kuckst ob der Name (wenn gewünscht) deinem Pattern matcht. Wenn ja liest du die Datei.


----------



## techdevil (23. Mrz 2010)

ok danke


----------



## citizen_erased (24. Mrz 2010)

das hatte ich doch neulich erst 
hier mit rekursiver durchsuchung aller unterverzeichnisse. das "directory" wird zuvor initialisiert 


```
private void scan() {
                File[] currentFiles = directory.listFiles();
		scanDirectory(currentFiles);
}

private void scanDirectory(File[] currentFiles) {
		 if (currentFiles==null || currentFiles.length==0) {
			 return;
		 }
		 
		 for (File file : currentFiles) {
			if (file.isDirectory()) {
				
                                // falls notwendig
				handleDir(file);
				
				// rekursiver aufruf
				scanDirectory(file.listFiles());
				
                                // falls notwendig: aktuelles verzeichnis löschen
				file.delete();
				continue;
			}
			
			// aktuelle datei
			handleFile(file);
		 }
	}
```


----------

