// Klasa List
//
// Izlistava sve datoteke i direktorije u direktoriju zadanom
// kao argument funkciji main ili u tekucem direktoriju.
// main se rekurzivno poziva za svaki poddirektorij.
// Ako je kao argument dana datoteka, samo ispisuje kanonski put.

import java.io.*;

public class List {
    public static void main(String [] args) {
	// Ako nista nije zadano kao argument, zadaj tekuci direktorij
	if (args.length==0) args = new String [] {"."};

	File dat = new File(args[0]);
	
	try {
	    if (dat.isDirectory())
		System.out.print("D: ");
	    else
		System.out.print("   ");
	    System.out.println(dat.getCanonicalPath());
	    //System.out.println(dat.getAbsolutePath());
	    //System.out.println(dat.getPath());
	    
	    if (dat.isDirectory()) {
		String [] lista = dat.list();

		if (lista!=null) {
		    for (int i=0; i<lista.length; i++) {
			File f = new File(dat.getPath(),lista[i]);

			main(new String [] {f.getPath()});
		    }
		}
	    }
	}
	catch (IOException e) {
	    e.printStackTrace();
	}
    }
}
