Java nach bestimmter dateiendung suchen

blade

Bekanntes Mitglied
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
 
ich schreib das gerne so...

Java:
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...
 
Java:
private JFileChooser fc;
fc = new JFileChooser();	
fc.addChoosableFileFilter(new TextFilter());
fc.setAcceptAllFileFilterUsed(false);

und dazu die Klasse TextFilter:
Java:
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)";
	}

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



ich schreib das gerne so...

Java:
		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...
 
Das ist eine for each Schleife (neumodischer Schnickschnack ;-))
Es wird bei jeden Schleifendurchgang der Variable f das nächste File aus der Liste zugewiesen.
 

Zurück
Oben