Package org.apache.commons.io.filefilter
Class WildcardFileFilter
java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.WildcardFileFilter
- All Implemented Interfaces:
FileFilter
,FilenameFilter
,Serializable
,FileVisitor<Path>
,PathFilter
,PathVisitor
,IOFileFilter
Filters files using the supplied wildcards.
This filter selects files and directories based on one or more wildcards. Testing is case-sensitive by default, but this can be configured.
The wildcard matcher uses the characters '?' and '*' to represent a single or multiple wildcard characters. This is the same as often found on DOS/Unix
command lines. The check is case-sensitive by default. See FilenameUtils.wildcardMatchOnSystem(String,String)
for more information.
To build an instance, see WildcardFileFilter.Builder
.
For example:
Using Classic IO
File dir = FileUtils.current(); FileFilter fileFilter = WildcardFileFilter.builder().setWildcards("*test*.java~*~").get(); File[] files = dir.listFiles(fileFilter); for (String file : files) { System.out.println(file); }
Using NIO
final Path dir = PathUtils.current(); final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters( WildcardFileFilter.builder().setWildcards("*test*.java~*~").get()); // // Walk one dir Files.walkFileTree(dir, Collections.emptySet(), 1, visitor); System.out.println(visitor.getPathCounters()); System.out.println(visitor.getFileList()); // visitor.getPathCounters().reset(); // // Walk dir tree Files.walkFileTree(dir, visitor); System.out.println(visitor.getPathCounters()); System.out.println(visitor.getDirList()); System.out.println(visitor.getFileList());
Deprecating Serialization
Serialization is deprecated and will be removed in 3.0.
- Since:
- 1.3
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final IOCase
Whether the comparison is case-sensitive.private static final long
private final String[]
The wildcards that will be used to match file names.Fields inherited from interface org.apache.commons.io.filefilter.IOFileFilter
EMPTY_STRING_ARRAY
-
Constructor Summary
ConstructorsModifierConstructorDescriptionWildcardFileFilter
(String wildcard) Deprecated.WildcardFileFilter
(String... wildcards) Deprecated.WildcardFileFilter
(String[] wildcards, IOCase ioCase) Deprecated.WildcardFileFilter
(String wildcard, IOCase ioCase) Deprecated.WildcardFileFilter
(List<String> wildcards) Deprecated.WildcardFileFilter
(List<String> wildcards, IOCase ioCase) Deprecated.private
WildcardFileFilter
(IOCase ioCase, String... wildcards) Constructs a new wildcard filter for an array of wildcards specifying case-sensitivity. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks to see if the file name matches one of the wildcards.boolean
Checks to see if the file name matches one of the wildcards.private boolean
accept
(Path file, BasicFileAttributes attributes) Checks to see if the file name matches one of the wildcards.static WildcardFileFilter.Builder
builder()
Constructs a newWildcardFileFilter.Builder
.private static <T> T
requireWildcards
(T wildcards) toString()
Provide a String representation of this file filter.Methods inherited from class org.apache.commons.io.filefilter.AbstractFileFilter
append, append, get, handle, postVisitDirectory, preVisitDirectory, toDefaultFileVisitResult, toFileVisitResult, visitFile, visitFileFailed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.commons.io.filefilter.IOFileFilter
and, negate, or
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
wildcards
The wildcards that will be used to match file names. -
ioCase
Whether the comparison is case-sensitive.
-
-
Constructor Details
-
WildcardFileFilter
Constructs a new wildcard filter for an array of wildcards specifying case-sensitivity.- Parameters:
ioCase
- how to handle case sensitivity, null means case-sensitivewildcards
- the array of wildcards to match, not null- Throws:
NullPointerException
- if the pattern array is null
-
WildcardFileFilter
Deprecated.Constructs a new case-sensitive wildcard filter for a list of wildcards.- Parameters:
wildcards
- the list of wildcards to match, not null- Throws:
IllegalArgumentException
- if the pattern list is nullClassCastException
- if the list does not contain Strings
-
WildcardFileFilter
Deprecated.Constructs a new wildcard filter for a list of wildcards specifying case-sensitivity.- Parameters:
wildcards
- the list of wildcards to match, not nullioCase
- how to handle case sensitivity, null means case-sensitive- Throws:
IllegalArgumentException
- if the pattern list is nullClassCastException
- if the list does not contain Strings
-
WildcardFileFilter
Deprecated.Constructs a new case-sensitive wildcard filter for a single wildcard.- Parameters:
wildcard
- the wildcard to match- Throws:
IllegalArgumentException
- if the pattern is null
-
WildcardFileFilter
Deprecated.Constructs a new case-sensitive wildcard filter for an array of wildcards.- Parameters:
wildcards
- the array of wildcards to match- Throws:
NullPointerException
- if the pattern array is null
-
WildcardFileFilter
Deprecated.Constructs a new wildcard filter for a single wildcard specifying case-sensitivity.- Parameters:
wildcard
- the wildcard to match, not nullioCase
- how to handle case sensitivity, null means case-sensitive- Throws:
NullPointerException
- if the pattern is null
-
WildcardFileFilter
Deprecated.Constructs a new wildcard filter for an array of wildcards specifying case-sensitivity.- Parameters:
wildcards
- the array of wildcards to match, not nullioCase
- how to handle case sensitivity, null means case-sensitive- Throws:
NullPointerException
- if the pattern array is null
-
-
Method Details
-
builder
Constructs a newWildcardFileFilter.Builder
.- Returns:
- a new
WildcardFileFilter.Builder
. - Since:
- 2.12.0
-
requireWildcards
private static <T> T requireWildcards(T wildcards) -
accept
Checks to see if the file name matches one of the wildcards.- Specified by:
accept
in interfaceFileFilter
- Specified by:
accept
in interfaceIOFileFilter
- Overrides:
accept
in classAbstractFileFilter
- Parameters:
file
- the file to check- Returns:
- true if the file name matches one of the wildcards
-
accept
Checks to see if the file name matches one of the wildcards.- Specified by:
accept
in interfaceFilenameFilter
- Specified by:
accept
in interfaceIOFileFilter
- Overrides:
accept
in classAbstractFileFilter
- Parameters:
dir
- the file directory (ignored)name
- the file name- Returns:
- true if the file name matches one of the wildcards
-
accept
Checks to see if the file name matches one of the wildcards.- Specified by:
accept
in interfaceIOFileFilter
- Specified by:
accept
in interfacePathFilter
- Parameters:
file
- the file to checkattributes
- the file's basic attributes (TODO may be null).- Returns:
- true if the file name matches one of the wildcards.
- Since:
- 2.9.0
-
accept
-
toString
Provide a String representation of this file filter.- Overrides:
toString
in classAbstractFileFilter
- Returns:
- a String representation
-
builder()
,WildcardFileFilter.Builder
, andWildcardFileFilter.Builder.get()