Uploaded image for project: 'Commons IO'
  1. Commons IO
  2. IO-172

Support directory scanning based on Ant-like include/exclude patterns

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.4
    • 3.x
    • Utilities
    • None

    Description

      While IO offers a rich set of IOFileFilters for finding files in directories, I feel it's missing a concept similar to Ant's file sets. For example, how would one search for files that match "*/.xml" but that don't match "bad/**"? The sketched example would require to exclude the directory "bad" but only if it is the first component of the path, something like "foo/bad/bar.xml" still needs to be included.

      Given the increased flexibility of Ant-like patterns, it would be cool to have something similar to Ant's DirectoryScanner available in Commons IO.

      Personally, I wouldn't need a full copy of the mentioned class, I believe some method like

      Collection<String> scanDirectory(File dir, Collection<String> includes, Collection<String> excludes)
      

      in FileUtils would just suffice. Some default excludes like SCM metadata files could be provided as a public static final and unmodifiable string collection. The return value should include path names relative to the base directory instead of absolute paths (it's easy for the caller to resolve the files against the base directory but it's error-prone to relativize absolute paths).

      Attachments

        Activity

          People

            Unassigned Unassigned
            bentmann Benjamin Bentmann
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: