org.apache.commons.io.filefilter

Class WildcardFilter

  • All Implemented Interfaces:
    FileFilter, FilenameFilter, Serializable, FileVisitor< Path>, PathFilter, PathVisitor, IOFileFilter
    Deprecated. 
    Use WildcardFileFilter. Deprecated as this class performs directory filtering which it shouldn't do, but that can't be removed due to compatibility.

    @Deprecated
    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(String, String) for more information.

    For example:

    Using Classic IO

     File dir = new File(".");
     FileFilter fileFilter = new WildcardFilter("*test*.java~*~");
     File[] files = dir.listFiles(fileFilter);
     for (String file : files) {
         System.out.println(file);
     }
     

    Using NIO

     final Path dir = Paths.get("");
     final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new WildcardFilter("*test*.java~*~"));
     //
     // Walk one dir
     Files.walkFileTree(dir, Collections.emptySet(), 1, visitor);
     System.out.println(visitor.getPathCounters());
     System.out.println(visitor.getFileList());
     //
     visitor.getPathCounters().reset();
     //
     // Walk dir tree
     Files.walkFileTree(dir, visitor);
     System.out.println(visitor.getPathCounters());
     System.out.println(visitor.getDirList());
     System.out.println(visitor.getFileList());
     
    Since:
    1.1
    See Also:
    Serialized Form
    • Constructor Detail

      • WildcardFilter

        public WildcardFilter(List<String> wildcards)
        Deprecated. 
        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
      • WildcardFilter

        public WildcardFilter(String wildcard)
        Deprecated. 
        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)
        Deprecated. 
        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
    • Method Detail

      • accept

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

        public FileVisitResult accept(Path file,
                                      BasicFileAttributes attributes)
        Deprecated. 
        Checks to see if the file name matches one of the wildcards.
        Specified by:
        accept in interface  PathFilter
        Specified by:
        accept in interface  IOFileFilter
        Parameters:
        file - the file to check
        attributes - the file's basic attributes (TODO may be null).
        Returns:
        true if the file name matches one of the wildcards
        Since:
        2.9.0
      • accept

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

Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.