Class RegexFileFilter

java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.RegexFileFilter
All Implemented Interfaces:
FileFilter, FilenameFilter, Serializable, FileVisitor<Path>, PathFilter, PathVisitor, IOFileFilter

public class RegexFileFilter extends AbstractFileFilter implements Serializable
Filters files using supplied regular expression(s).

See java.util.regex.Pattern for regex matching rules.

Using Classic IO

e.g.

 File dir = FileUtils.current();
 FileFilter fileFilter = new RegexFileFilter("^.*[tT]est(-\\d+)?\\.java$");
 File[] files = dir.listFiles(fileFilter);
 for (String file : files) {
     System.out.println(file);
 }
 

Using NIO

 final Path dir = PathUtils.current();
 final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new RegexFileFilter("^.*[tT]est(-\\d+)?\\.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());
 

Deprecating Serialization

Serialization is deprecated and will be removed in 3.0.

Since:
1.4
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • pattern

      private final Pattern pattern
      The regular expression pattern that will be used to match file names.
    • pathToString

      private final Function<Path,String> pathToString
      How convert a path to a string.
  • Constructor Details

    • RegexFileFilter

      public RegexFileFilter(Pattern pattern)
      Constructs a new regular expression filter for a compiled regular expression
      Parameters:
      pattern - regular expression to match.
      Throws:
      NullPointerException - if the pattern is null.
    • RegexFileFilter

      public RegexFileFilter(Pattern pattern, Function<Path,String> pathToString)
      Constructs a new regular expression filter for a compiled regular expression
      Parameters:
      pattern - regular expression to match.
      pathToString - How convert a path to a string.
      Throws:
      NullPointerException - if the pattern is null.
      Since:
      2.10.0
    • RegexFileFilter

      public RegexFileFilter(String pattern)
      Constructs a new regular expression filter.
      Parameters:
      pattern - regular string expression to match
      Throws:
      NullPointerException - if the pattern is null
    • RegexFileFilter

      public RegexFileFilter(String pattern, int flags)
      Constructs a new regular expression filter with the specified flags.
      Parameters:
      pattern - regular string expression to match
      flags - pattern flags - e.g. Pattern.CASE_INSENSITIVE
      Throws:
      IllegalArgumentException - if the pattern is null
    • RegexFileFilter

      public RegexFileFilter(String pattern, IOCase ioCase)
      Constructs a new regular expression filter with the specified flags case sensitivity.
      Parameters:
      pattern - regular string expression to match
      ioCase - how to handle case sensitivity, null means case-sensitive
      Throws:
      IllegalArgumentException - if the pattern is null
  • Method Details

    • compile

      private static Pattern compile(String pattern, int flags)
      Compiles the given pattern source.
      Parameters:
      pattern - the source pattern.
      flags - the compilation flags.
      Returns:
      a new Pattern.
    • toFlags

      private static int toFlags(IOCase ioCase)
      Converts IOCase to Pattern compilation flags.
      Parameters:
      ioCase - case-sensitivity.
      Returns:
      Pattern compilation flags.
    • accept

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

      public FileVisitResult accept(Path path, BasicFileAttributes attributes)
      Checks to see if the file name matches one of the regular expressions.
      Specified by:
      accept in interface IOFileFilter
      Specified by:
      accept in interface PathFilter
      Parameters:
      path - the path
      attributes - the path attributes
      Returns:
      true if the file name matches one of the regular expressions
    • toString

      public String toString()
      Returns a debug string.
      Overrides:
      toString in class AbstractFileFilter
      Returns:
      a String representation
      Since:
      2.10.0