org.apache.commons.io.filefilter

Class WildcardFileFilter

public class WildcardFileFilter extends AbstractFileFilter implements Serializable

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 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 < files.length; i++) {
   System.out.println(files[i]);
 }
 

Since: Commons IO 1.3

Version: $Revision: 155419 $ $Date: 2007-12-22 02:03:16 +0000 (Sat, 22 Dec 2007) $

Author: Jason Anderson

Field Summary
IOCasecaseSensitivity
Whether the comparison is case sensitive.
String[]wildcards
The wildcards that will be used to match filenames.
Constructor Summary
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.
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.
Method Summary
booleanaccept(File dir, String name)
Checks to see if the filename matches one of the wildcards.
booleanaccept(File file)
Checks to see if the filename matches one of the wildcards.
StringtoString()
Provide a String representaion of this file filter.

Field Detail

caseSensitivity

private final IOCase caseSensitivity
Whether the comparison is case sensitive.

wildcards

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

Constructor Detail

WildcardFileFilter

public WildcardFileFilter(String wildcard)
Construct a new case-sensitive wildcard filter for a single wildcard.

Parameters: wildcard the wildcard to match

Throws: IllegalArgumentException if the pattern is null

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

Throws: IllegalArgumentException if the pattern is null

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

Throws: IllegalArgumentException if the pattern array is null

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

Throws: IllegalArgumentException if the pattern array is null

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

Throws: IllegalArgumentException if the pattern list is null ClassCastException if the list does not contain Strings

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

Throws: IllegalArgumentException if the pattern list is null ClassCastException if the list does not contain Strings

Method Detail

accept

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

Parameters: dir the file directory name the filename

Returns: true if the filename matches one of the wildcards

accept

public boolean accept(File file)
Checks to see if the filename matches one of the wildcards.

Parameters: file the file to check

Returns: true if the filename matches one of the wildcards

toString

public String toString()
Provide a String representaion of this file filter.

Returns: a String representaion

Copyright (c) 2002-2011 Apache Software Foundation