Class DirectoryFileComparator

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator<java.io.File>

    public class DirectoryFileComparator
    extends AbstractFileComparator
    implements java.io.Serializable
    Compare two files using the File.isDirectory() method.

    This comparator can be used to sort lists or arrays by directories and files.

    Example of sorting a list of files/directories using the DIRECTORY_COMPARATOR singleton instance:

           List<File> list = ...
           ((AbstractFileComparator) DirectoryFileComparator.DIRECTORY_COMPARATOR).sort(list);
     

    Example of doing a reverse sort of an array of files/directories using the DIRECTORY_REVERSE singleton instance:

           File[] array = ...
           ((AbstractFileComparator) DirectoryFileComparator.DIRECTORY_REVERSE).sort(array);
     

    Since:
    2.0
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.io.File file1, java.io.File file2)
      Compare the two files using the File.isDirectory() method.
      private int getType​(java.io.File file)
      Convert type to numeric value.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Field Detail

      • DIRECTORY_COMPARATOR

        public static final java.util.Comparator<java.io.File> DIRECTORY_COMPARATOR
        Singleton default comparator instance
      • DIRECTORY_REVERSE

        public static final java.util.Comparator<java.io.File> DIRECTORY_REVERSE
        Singleton reverse default comparator instance
    • Constructor Detail

      • DirectoryFileComparator

        public DirectoryFileComparator()
    • Method Detail

      • compare

        public int compare​(java.io.File file1,
                           java.io.File file2)
        Compare the two files using the File.isDirectory() method.
        Specified by:
        compare in interface java.util.Comparator<java.io.File>
        Parameters:
        file1 - The first file to compare
        file2 - The second file to compare
        Returns:
        the result of calling file1's File.compareTo(File) with file2 as the parameter.
      • getType

        private int getType​(java.io.File file)
        Convert type to numeric value.
        Parameters:
        file - The file
        Returns:
        1 for directories and 2 for files