package javacodebook.io.listdir; import java.io.*; /** * Ein einfacher FilenameFilter, der nur Dateien mit einer bestimmten Endung * akzeptiert. */ public class FileTypeFilter implements java.io.FilenameFilter { private String fileType; public FileTypeFilter(String fileType) { this.fileType = fileType; } public boolean accept(File dir, String name) { if(name.endsWith(fileType)) return true; return false; } } --- Neue Klasse --- package javacodebook.io.listdir; import java.io.*; /** * Auflisten aller Dateien in einem Verzeichnis mit der Methode list(). */ public class ListDir { public static void listAll(String dir) throws IOException { File f = new File(dir); String[] filenames = f.list(); for(int i = 0; i < filenames.length; i++) System.out.println(filenames[i]); } public static void listFiltered(String dir, String fileType) throws IOException { File f = new File(dir); FilenameFilter filter = new FileTypeFilter(fileType); String[] filenames = f.list(filter); for(int i = 0; i < filenames.length; i++) System.out.println(filenames[i]); } public static void main(String[] args) throws Exception { if(args.length < 2) printUsage(); String dir = args[0]; String fileType = args[1]; System.out.println("Alle Dateien im Verzeichnis"); listAll(dir); System.out.println("Nur Dateien vom Typ " + fileType); listFiltered(dir, fileType); } private static void printUsage() { System.out.println("Aufruf: java javacodebook.io.listdir.ListDir Verzeichnis Dateityp"); System.exit(0); } }