Class RecursiveFileSearch


  • public class RecursiveFileSearch
    extends java.lang.Object
    Recursively search a directory, its subdirectories, etc. Note that the search algorithm uses a worklist, so its implementation does not use recursive method calls.
    • Field Detail

      • baseDir

        private final java.lang.String baseDir
      • fileFilter

        private final java.io.FileFilter fileFilter
      • directoryWorkList

        private final java.util.LinkedList<java.io.File> directoryWorkList
      • directoriesScanned

        private final java.util.HashSet<java.lang.String> directoriesScanned
      • directoriesScannedList

        private final java.util.List<java.lang.String> directoriesScannedList
      • resultList

        private final java.util.ArrayList<java.lang.String> resultList
    • Constructor Detail

      • RecursiveFileSearch

        public RecursiveFileSearch​(java.lang.String baseDir,
                                   java.io.FileFilter fileFilter)
        Constructor.
        Parameters:
        baseDir - the base directory for the search
        fileFilter - chooses files to add to the results, and subdirectories to continue the search in
    • Method Detail

      • bestEffortCanonicalPath

        static java.lang.String bestEffortCanonicalPath​(java.io.File f)
      • search

        public RecursiveFileSearch search()
                                   throws java.lang.InterruptedException
        Perform the search.
        Returns:
        this object
        Throws:
        java.lang.InterruptedException - if the thread is interrupted before the search completes
      • fileNameIterator

        public java.util.Iterator<java.lang.String> fileNameIterator()
        Get an iterator over the files found by the search. The full path names of the files are returned.
      • getDirectoriesScanned

        public java.util.List<java.lang.String> getDirectoriesScanned()