/** * Walk behaves more like pyhton's os.walk than the walker I built around it again this was * laziness. Is a breadth first search modifications could include max depth * * @return File[] containing files that fit the filter */ public File[] walk() { DirectoryFilter df = new DirectoryFilter(); Queue<File> dirQueue = new LinkedBlockingQueue<File>(); dirQueue.addAll(Arrays.asList(m_topLevel.listFiles(df))); m_fileStructure.addDirs(m_topLevel.listFiles(df)); m_fileStructure.addFiles(walkFiles(m_topLevel)); while (!dirQueue.isEmpty()) { File d = dirQueue.poll(); dirQueue.addAll(Arrays.asList(d.listFiles(df))); m_fileStructure.addDirs(d.listFiles(df)); m_fileStructure.addFiles(walkFiles(d)); } return m_fileStructure.getFiles(); }
public File[] getDirs() { return m_fileStructure.getDirs(); }