org.apache.commons.io.filefilter

Class WildcardFilter

Implemented Interfaces:
FileFilter, FilenameFilter, Serializable, IOFileFilter

public class WildcardFilter
extends AbstractFileFilter
implements Serializable

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.wildcardMatch 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 <32files.length; i++) {
   System.out.println(files[i]);
 }
 
Version:
$Revision: 606381 $ $Date: 2007-12-22 02:03:16 +0000 (Sat, 22 Dec 2007) $
Author:
Jason Anderson
Since:
Commons IO 1.1

Field Summary

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

Constructor Summary

WildcardFilter(List wildcards)
Construct a new case-sensitive wildcard filter for a list of wildcards.
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.

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, toString

Field Details

wildcards

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

Constructor Details

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

WildcardFilter

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

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

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

Copyright (c) 2002-2009 Apache Software Foundation