package org.anodyneos.xpImpl.compiler;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Stack;
public class FileLister {
public static File[] deepListFiles(File root, FileFilter filter) {
if(! root.isDirectory()) {
return new File[0];
} else {
ArrayList results = new ArrayList();
Stack dirs = new Stack();
dirs.push(root);
while (! dirs.empty()) {
File[] files;
files = ((File)dirs.pop()).listFiles(filter);
for(int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isDirectory()) {
dirs.push(file);
} else {
results.add(file);
}
}
}
return (File[]) results.toArray(new File[results.size()]);
}
}
public static String[] deepList(File root, FileFilter filter) {
File[] files = deepListFiles(root, filter);
String[] paths = new String[files.length];
for (int i = 0; i < files.length; i++) {
paths[i] = files[i].getAbsolutePath();
}
return paths;
}
}