org.apache.commons.io.filefilter

Class WildcardFileFilter

Implemented Interfaces:
FileFilter, FilenameFilter, IOFileFilter

public class WildcardFileFilter
extends AbstractFileFilter

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 extension check is case-sensitive by . See FilenameUtils.wildcardMatchOnSystem(String,String) for more information.

For example:

 File dir = new File(".");
 FileFilter fileFilter = new WildcardFileFilter("*test*.java~*~");
 File[] files = dir.listFiles(fileFilter);
 for (int i = 0; i <32files.length; i++) {
   System.out.println(files[i]);
 }
 
Version:
$Revision: 155419 $ $Date: 2006-08-28 13:57:00 +0200 (Mo, 28 Aug 2006) $
Author:
Jason Anderson
Since:
Commons IO 1.3

Field Summary

private IOCase
caseSensitivity
Whether the comparison is case sensitive.
private String[]
wildcards
The wildcards that will be used to match filenames.

Constructor Summary

WildcardFileFilter(List wildcards)
Construct a new case-sensitive wildcard filter for a list of wildcards.
WildcardFileFilter(List wildcards, IOCase caseSensitivity)
Construct a new wildcard filter for a list of wildcards specifying case-sensitivity.
WildcardFileFilter(String wildcard)
Construct a new case-sensitive wildcard filter for a single wildcard.
WildcardFileFilter(String wildcard, IOCase caseSensitivity)
Construct a new wildcard filter for a single wildcard specifying case-sensitivity.
WildcardFileFilter(String[] wildcards)
Construct a new case-sensitive wildcard filter for an array of wildcards.
WildcardFileFilter(String[] wildcards, IOCase caseSensitivity)
Construct a new wildcard filter for an array of wildcards specifying case-sensitivity.

Method Summary

boolean
accept(File file)
Checks to see if the filename matches one of the wildcards.
boolean
accept(File dir, String name)
Checks to see if the filename matches one of the wildcards.

Methods inherited from class org.apache.commons.io.filefilter.AbstractFileFilter

accept, accept

Field Details

caseSensitivity

private IOCase caseSensitivity
Whether the comparison is case sensitive.

wildcards

private String[] wildcards
The wildcards that will be used to match filenames.

Constructor Details

WildcardFileFilter

public WildcardFileFilter(List wildcards)
Construct a new case-sensitive wildcard filter for a list of wildcards.
Parameters:
wildcards - the list of wildcards to match, not null

WildcardFileFilter

public WildcardFileFilter(List wildcards,
                          IOCase caseSensitivity)
Construct a new wildcard filter for a list of wildcards specifying case-sensitivity.
Parameters:
wildcards - the list of wildcards to match, not null
caseSensitivity - how to handle case sensitivity, null means case-sensitive

WildcardFileFilter

public WildcardFileFilter(String wildcard)
Construct a new case-sensitive wildcard filter for a single wildcard.
Parameters:
wildcard - the wildcard to match

WildcardFileFilter

public WildcardFileFilter(String wildcard,
                          IOCase caseSensitivity)
Construct a new wildcard filter for a single wildcard specifying case-sensitivity.
Parameters:
wildcard - the wildcard to match, not null
caseSensitivity - how to handle case sensitivity, null means case-sensitive

WildcardFileFilter

public WildcardFileFilter(String[] wildcards)
Construct a new case-sensitive wildcard filter for an array of wildcards.

The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.

Parameters:
wildcards - the array of wildcards to match

WildcardFileFilter

public WildcardFileFilter(String[] wildcards,
                          IOCase caseSensitivity)
Construct a new wildcard filter for an array of wildcards specifying case-sensitivity.

The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.

Parameters:
wildcards - the array of wildcards to match, not null
caseSensitivity - how to handle case sensitivity, null means case-sensitive

Method Details

accept

public boolean accept(File file)
Checks to see if the filename matches one of the wildcards.
Specified by:
accept in interface IOFileFilter
Overrides:
accept in interface AbstractFileFilter
Parameters:
file - the file to check
Returns:
true if the filename matches one of the wildcards

accept

public boolean accept(File dir,
                      String name)
Checks to see if the filename matches one of the wildcards.
Specified by:
accept in interface IOFileFilter
Overrides:
accept in interface AbstractFileFilter
Parameters:
dir - the file directory
name - the filename
Returns:
true if the filename matches one of the wildcards