previous | start

Recursion 2: Listing Directories (the recursive code)

public class ListDirs
{
  private static PrintStream ps = System.out;

  
  public static void listAll(String dirName)
  {
    listAll(dirName, "+");
  }
  
  private static void listAll(String dirName, String prefix)
  {
    File f = new File(dirName);
    File[] entries = f.listFiles();

    for(int i = 0; i < entries.length; i++) {
      ps.printf("%s %s\n", prefix, entries[i].getName());
      if ( entries[i].isDirectory()) {
        listAll(dirName + "/" + entries[i].getName(), 
                "   " + prefix);
      }
    }
  }
  
  public static void main(String[] args)
  {
    String dir;

    if ( args.length > 0 ) {
      dir = args[0];
    } else {
      dir = ".";
    }
    listAll(dir);
  }

}


previous | start