Java Notes
Example - Recursive List
Here is an example of listing files and directories recursively.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// File : io/file/RecusiveList.java // Purpose: Recursively list directories and files. // Author : Fred Swartz 1997-08-06 (Bangkok, Thailand), 2000-10-31 (Rota, Spain) // 2006-09-25 (Rodenbach, Deutschland) import java.util.*; import java.io.*; public class RecursiveList { static final int MAX_DEPTH = 20; // Max 20 levels (directory nesting) static final String INDENT_STR = " "; // Single indent. static final String[] INDENTS = new String[MAX_DEPTH]; // Indent array. //===================================================================== main public static void main(String[] args) { //... Initialize array of indentations. INDENTS[0] = INDENT_STR; for (int i = 1; i < MAX_DEPTH; i++) { INDENTS[i] = INDENTS[i-1] + INDENT_STR; } System.out.print("Enter a directory name to list recursively:"); Scanner in = new Scanner(System.in); File root = new File(in.nextLine()); if (root != null && root.isDirectory()) { listRecursively(root, 0); } else { System.out.println("Not a directory: " + root); } } //========================================================== listRecursively public static void listRecursively(File fdir, int depth) { System.out.println(INDENTS[depth] + fdir.getName()); // Print name. if (fdir.isDirectory() && depth < MAX_DEPTH) { for (File f : fdir.listFiles()) { // Go over each file/subdirectory. listRecursively(f, depth+1); } } } } |