// Helene Martin, CSE 143 // Recursively crawls a directory structure. import java.io.*; import java.util.*; public class Crawler { public static void main(String[] args) { Scanner console = new Scanner(System.in); System.out.print("directory or file name? "); String name = console.nextLine(); File f = new File(name); if (!f.exists()) { System.out.println("That file or directory does not exist"); } else { print(f); } } // Prints the name of the given file. If the file is a directory, // recursively prints its content. The given file is printed at // 0 intendation. // pre: f != null and f.exists() public static void print(File f) { print(f, 0); } // Prints the name of the given file. If the file is a directory, // recursively prints its content. Displays the name of each file // at the specified indentation level. // pre: f != null and f.exists() private static void print(File f, int indent) { for (int i = 0; i < indent; i++) { System.out.print(" "); } System.out.println(f.getName()); if (f.isDirectory()) { File[] files = f.listFiles(); for (int i = 0; i < files.length; i++) { print(files[i], indent + 1); } } } }