package javacodebook.io.copydir;

import java.io.*;
import javacodebook.io.dirtree.FileVisitor;
import javacodebook.io.dirtree.FileTreeWalker;

/**
 * Eine Klasse, die ähnlich wie CopyFile aus dem Rezept
 * "Eine Datei kopieren" arbeitet, aber ganze Verzeichnisbäume
 * kopiert.
 *
 * @author  Dirk Brodersen
 */
public class CopyDir {

    public static void main(String[] args)
    throws Exception {
        if(args.length != 2)
            usage();
        String source = args[0];
        String target = args[1];
        copyDir(source, target);
    }

    public static void copyDir(String source, String target)
    throws IOException {
        File sourceDir = new File(source);
        CopyDirVisitor visitor = new CopyDirVisitor(sourceDir,
                                                    new File(target));
        FileTreeWalker walker = new FileTreeWalker(sourceDir, visitor,
            null);
        walker.start();
    }

    public static void usage() {
        System.out.println("Benutzung: java javacodebook.io.copydir.CopyDir Quellverzeichnis Zielverzeichnis");
        System.exit(0);
    }
}
