Support directory scanning based on Ant-like include/exclude patterns
---------------------------------------------------------------------
Key: IO-172
URL: https://issues.apache.org/jira/browse/IO-172
Project: Commons IO
Issue Type: New Feature
Components: Utilities
Affects Versions: 1.4
Reporter: Benjamin Bentmann
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|http://ant.apache.org/manual/dirtasks.html#patterns], it would be cool
to have something similar to Ant's
[{{DirectoryScanner}}|http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DirectoryScanner.java?view=markup]
available in Commons IO.
Personally, I wouldn't need a full copy of the mentioned class, I believe some
method like
{code:java}
Collection<String> scanDirectory(File dir, Collection<String> includes,
Collection<String> excludes)
{code}
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).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.