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);
    }
}