osley osley - 1 month ago 19
Scala Question

Recursively create directory

Does anyone know how to use Java to create sub-directories based on the alphabets (a-z) that is n levels deep?

/a
/a
/a
/b
/c
..
/b
/a
/b
..
..
/a
/b
/c
..

/b
/a
/a
/b
..
/b
/a
/b
..
..
/a
/b
..
..
/a
/a
/b
..
/b
/a
/b
..
..
/a
/b
..

Answer
public static void main(String[] args) {
  File root = new File("C:\\SO");
  List<String> alphabet = new ArrayList<String>();
  for (int i = 0; i < 26; i++) {
    alphabet.add(String.valueOf((char)('a' + i)));
  }

  final int depth = 3;
  mkDirs(root, alphabet, depth);
}

public static void mkDirs(File root, List<String> dirs, int depth) {
  if (depth == 0) return;
  for (String s : dirs) {
    File subdir = new File(root, s);
    subdir.mkdir();
    mkDirs(subdir, dirs, depth - 1);
  }
}

mkDirs recusively creates a depth-level directory tree based on a given list of Strings, which, in the case of main, consists of a list of characters in the English alphabet.

Comments