I am trying to get a list of all files in a directory and its subdirectories. My current recursive approach is as follows:
private void printFiles(File dir)
You can always replace a recursive solution with an iterative one by using a stack (for DFS) or a Queue (For BFS):
private void printFiles(File dir) {
Stack stack = new Stack();
stack.push(dir);
while(!stack.isEmpty()) {
File child = stack.pop();
if (child.isDirectory()) {
for(File f : child.listFiles()) stack.push(f);
} else if (child.isFile()) {
System.out.println(child.getPath());
}
}
}
printFiles(new File("abc/def.ghi"));