org.apache.commons.io.filefilter

Class WildcardFilter

public class WildcardFilter extends AbstractFileFilter implements Serializable

Deprecated: Use WilcardFileFilter. Deprecated as this class performs directory filtering which it shouldn't do, but that can't be removed due to compatability.

Filters files using the supplied wildcards.

This filter selects files, but not directories, based on one or more wildcards and using case-sensitive comparison.

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. See FilenameUtils for more information.

For example:

 File dir = new File(".");
 FileFilter fileFilter = new WildcardFilter("*test*.java~*~");
 File[] files = dir.listFiles(fileFilter);
 for (int i = 0; i < files.length; i++) {
   System.out.println(files[i]);
 }
 

Since: Commons IO 1.1

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

Author: Jason Anderson

Field Summary
String[]wildcards
The wildcards that will be used to match filenames.
Constructor Summary
WildcardFilter(String wildcard)
Construct a new case-sensitive wildcard filter for a single wildcard.
WildcardFilter(String[] wildcards)
Construct a new case-sensitive wildcard filter for an array of wildcards.
WildcardFilter(List wildcards)
Construct a new case-sensitive wildcard filter for a list of wildcards.
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.

Field Detail

wildcards

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

Constructor Detail

WildcardFilter

public WildcardFilter(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

WildcardFilter

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

Parameters: wildcards the array of wildcards to match

Throws: IllegalArgumentException if the pattern array is null

WildcardFilter

public WildcardFilter(List wildcards)
Construct a new case-sensitive wildcard filter for a list of wildcards.

Parameters: wildcards the list of wildcards to match

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

Copyright (c) 2002-2011 Apache Software Foundation