Class WildcardFileFilter

java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.WildcardFileFilter
All Implemented Interfaces:
FileFilter, FilenameFilter, Serializable, IOFileFilter

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 check is case-sensitive by default. 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 < files.length; i++) {
   System.out.println(files[i]);
 }
 
Since:
1.3
See Also:
  • Constructor Details

    • 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.

      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.

      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<String> 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<String> 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 Details