Class SuffixFileFilter

  • All Implemented Interfaces:
    java.io.FileFilter, java.io.FilenameFilter, java.io.Serializable, java.nio.file.FileVisitor<java.nio.file.Path>, PathFilter, PathVisitor, IOFileFilter

    public class SuffixFileFilter
    extends AbstractFileFilter
    implements java.io.Serializable
    Filters files based on the suffix (what the file name ends with). This is used in retrieving all the files of a particular type.

    For example, to retrieve and print all *.java files in the current directory:

    Using Classic IO

     File dir = new File(".");
     String[] files = dir.list(new SuffixFileFilter(".java"));
     for (String file : files) {
         System.out.println(file);
     }
     

    Using NIO

     final Path dir = Paths.get("");
     final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new SuffixFileFilter(".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.0
    See Also:
    FileFilterUtils.suffixFileFilter(String), FileFilterUtils.suffixFileFilter(String, IOCase), Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      SuffixFileFilter​(java.lang.String suffix)
      Constructs a new Suffix file filter for a single extension.
      SuffixFileFilter​(java.lang.String... suffixes)
      Constructs a new Suffix file filter for an array of suffixes.
      SuffixFileFilter​(java.lang.String[] suffixes, IOCase caseSensitivity)
      Constructs a new Suffix file filter for an array of suffixes specifying case-sensitivity.
      SuffixFileFilter​(java.lang.String suffix, IOCase caseSensitivity)
      Constructs a new Suffix file filter for a single extension specifying case-sensitivity.
      SuffixFileFilter​(java.util.List<java.lang.String> suffixes)
      Constructs a new Suffix file filter for a list of suffixes.
      SuffixFileFilter​(java.util.List<java.lang.String> suffixes, IOCase caseSensitivity)
      Constructs a new Suffix file filter for a list of suffixes specifying case-sensitivity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accept​(java.io.File file)
      Checks to see if the file name ends with the suffix.
      boolean accept​(java.io.File file, java.lang.String name)
      Checks to see if the file name ends with the suffix.
      java.nio.file.FileVisitResult accept​(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
      Checks to see if the file name ends with the suffix.
      java.lang.String toString()
      Provide a String representation of this file filter.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • SuffixFileFilter

        public SuffixFileFilter​(java.util.List<java.lang.String> suffixes)
        Constructs a new Suffix file filter for a list of suffixes.
        Parameters:
        suffixes - the suffixes to allow, must not be null
        Throws:
        java.lang.IllegalArgumentException - if the suffix list is null
        java.lang.ClassCastException - if the list does not contain Strings
      • SuffixFileFilter

        public SuffixFileFilter​(java.util.List<java.lang.String> suffixes,
                                IOCase caseSensitivity)
        Constructs a new Suffix file filter for a list of suffixes specifying case-sensitivity.
        Parameters:
        suffixes - the suffixes to allow, must not be null
        caseSensitivity - how to handle case sensitivity, null means case-sensitive
        Throws:
        java.lang.IllegalArgumentException - if the suffix list is null
        java.lang.ClassCastException - if the list does not contain Strings
        Since:
        1.4
      • SuffixFileFilter

        public SuffixFileFilter​(java.lang.String suffix)
        Constructs a new Suffix file filter for a single extension.
        Parameters:
        suffix - the suffix to allow, must not be null
        Throws:
        java.lang.IllegalArgumentException - if the suffix is null
      • SuffixFileFilter

        public SuffixFileFilter​(java.lang.String... suffixes)
        Constructs a new Suffix file filter for an array of suffixes.

        The array is not cloned, so could be changed after constructing the instance. This would be inadvisable however.

        Parameters:
        suffixes - the suffixes to allow, must not be null
        Throws:
        java.lang.IllegalArgumentException - if the suffix array is null
      • SuffixFileFilter

        public SuffixFileFilter​(java.lang.String suffix,
                                IOCase caseSensitivity)
        Constructs a new Suffix file filter for a single extension specifying case-sensitivity.
        Parameters:
        suffix - the suffix to allow, must not be null
        caseSensitivity - how to handle case sensitivity, null means case-sensitive
        Throws:
        java.lang.IllegalArgumentException - if the suffix is null
        Since:
        1.4
      • SuffixFileFilter

        public SuffixFileFilter​(java.lang.String[] suffixes,
                                IOCase caseSensitivity)
        Constructs a new Suffix file filter for an array of suffixes specifying case-sensitivity.
        Parameters:
        suffixes - the suffixes to allow, must not be null
        caseSensitivity - how to handle case sensitivity, null means case-sensitive
        Throws:
        java.lang.IllegalArgumentException - if the suffix array is null
        Since:
        1.4
    • Method Detail

      • accept

        public boolean accept​(java.io.File file)
        Checks to see if the file name ends with the suffix.
        Specified by:
        accept in interface java.io.FileFilter
        Specified by:
        accept in interface IOFileFilter
        Overrides:
        accept in class AbstractFileFilter
        Parameters:
        file - the File to check
        Returns:
        true if the file name ends with one of our suffixes
      • accept

        public boolean accept​(java.io.File file,
                              java.lang.String name)
        Checks to see if the file name ends with the suffix.
        Specified by:
        accept in interface java.io.FilenameFilter
        Specified by:
        accept in interface IOFileFilter
        Overrides:
        accept in class AbstractFileFilter
        Parameters:
        file - the File directory
        name - the file name
        Returns:
        true if the file name ends with one of our suffixes
      • accept

        public java.nio.file.FileVisitResult accept​(java.nio.file.Path file,
                                                    java.nio.file.attribute.BasicFileAttributes attributes)
        Checks to see if the file name ends with the suffix.
        Specified by:
        accept in interface IOFileFilter
        Specified by:
        accept in interface PathFilter
        Parameters:
        file - the File to check
        attributes - the file's basic attributes (TODO may be null).
        Returns:
        true if the file name ends with one of our suffixes
        Since:
        2.9.0
      • toString

        public java.lang.String toString()
        Provide a String representation of this file filter.
        Overrides:
        toString in class AbstractFileFilter
        Returns:
        a String representation