# Java nach bestimmter dateiendung suchen



## blade (22. Nov 2010)

Hallo, ich versuche ein Programm zu schreiben das nur Dateien aus einem Verzeichnis c:\test\
raussucht die nur eine bestimmte Dateiendung haben.

Z.B. dateien mit der endung datei.abc

ich habe gesehen das es die Klasse File gibt, aber wie kann ich denn ein Verzeichnis mit lauter Dateien durchsuchen und z.B. die dateien mit der endung in einem System.out.println() ausgeben?

Kennt hier einer schon eine Klasse und hat vielleicht ein Beispiel?

Grüße


----------



## Michael... (22. Nov 2010)

File bietet eine Methode um Verzeichnisse gefildert auszulesen:
File#list(FilenameFilter)


----------



## ARadauer (22. Nov 2010)

ich schreib das gerne so...


```
File dir = new File("c:/windows");
		File[] files = dir.listFiles(new FilenameFilter() {			
			public boolean accept(File dir, String name) {
				return name.endsWith("exe");
			}
		});
		
		for(File f: files){
			System.out.println(f.getName());
		}
```

sieht für Anfänger etwas verwirrend aus... ich finds aber ganz praktisch.. im grund wird hier direkt als parameter eine interface implementiert...


----------



## sicLotus (22. Nov 2010)

```
private JFileChooser fc;
fc = new JFileChooser();	
fc.addChoosableFileFilter(new TextFilter());
fc.setAcceptAllFileFilterUsed(false);
```

und dazu die Klasse TextFilter:

```
import java.io.File;
import javax.swing.filechooser.FileFilter;


public class TextFilter extends FileFilter {

	@Override
	public boolean accept(File f) {
		 return (f.isDirectory() || f.getName().endsWith(".txt"));			 
	}

	@Override
	public String getDescription() {
		return "Nur Textdateien (*.txt)";
	}

}
```


----------



## L-ectron-X (22. Nov 2010)

Hab hier noch eine fertige Klasse: http://www.java-forum.org/allgemeine-java-themen/20863-nur-javabeans-laden-dateifilter.html


----------



## blade (23. Nov 2010)

Hallo und vielen Dank!
Funktioniert super.
Nur was bedeutet das f: in der Schleife?





ARadauer hat gesagt.:


> ich schreib das gerne so...
> 
> 
> ```
> ...


----------



## Michael... (23. Nov 2010)

Das ist eine for each Schleife (neumodischer Schnickschnack ;-))
Es wird bei jeden Schleifendurchgang der Variable f das nächste File aus der Liste zugewiesen.


----------

