This is an old revision of the document!
private TreeSet<File> getSourceFiles(File srcDir) throws FileNotFoundException {
if (!srcDir.isFile() && srcDir.listFiles() == null)
throw new FileNotFoundException("Not found source directory.");
// 파일 이름순 정렬
TreeSet<File> files = new TreeSet<File>(new Comparator<File>() {
public int compare(File o1, File o2) {
return o1.getPath().compareToIgnoreCase(o2.getPath());
}
});
Stack<File> directories = new Stack<File>();
directories.push(srcDir);
// DFS
while(!directories.isEmpty()) {
File directory = directories.pop();
for(File composite : directory.listFiles()) {
if(composite.isDirectory()) {
directories.push(composite);
}
else if(composite.isFile()) {
files.add(composite);
}
}
}
return files;
}