1 19 20 package edu.umd.cs.findbugs.workflow; 21 22 import java.io.File ; 23 import java.util.*; 24 25 public class RecursiveSearchForJavaFiles { 26 27 public static void main(String args[]) { 28 for(File f : search(new File (args[0]))) 29 System.out.println(f.getPath()); 30 } 31 public static Set<File > search(File root) { 32 Set<File > result = new HashSet<File >(); 33 Set<File > directories = new HashSet<File >(); 34 LinkedList<File > worklist = new LinkedList<File >(); 35 directories.add(root); 36 worklist.add(root); 37 while (!worklist.isEmpty()) { 38 File next = worklist.removeFirst(); 39 File [] files = next.listFiles(); 40 if (files != null) for (File f : files) { 41 if (f.getName().endsWith(".java")) 42 result.add(f); 43 else if (f.isDirectory() && directories.add(f)) { 44 worklist.add(f); 45 } 46 47 } 48 49 } 50 return result; 51 52 } 53 54 } 55 | Popular Tags |