Class SizeFileComparator

java.lang.Object
org.apache.commons.io.comparator.AbstractFileComparator
org.apache.commons.io.comparator.SizeFileComparator
All Implemented Interfaces:
Serializable, Comparator<File>

public class SizeFileComparator extends AbstractFileComparator implements Serializable
Compare the length/size of two files for order (see File.length() and FileUtils.sizeOfDirectory(File)).

This comparator can be used to sort lists or arrays of files by their length/size.

Example of sorting a list of files using the SIZE_COMPARATOR singleton instance:

       List<File> list = ...
       ((AbstractFileComparator) SizeFileComparator.SIZE_COMPARATOR).sort(list);
 

Example of doing a reverse sort of an array of files using the SIZE_REVERSE singleton instance:

       File[] array = ...
       ((AbstractFileComparator) SizeFileComparator.SIZE_REVERSE).sort(array);
 

N.B. Directories are treated as zero size unless sumDirectoryContents is true.

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:
    • SIZE_COMPARATOR

      public static final Comparator<File> SIZE_COMPARATOR
      Size comparator instance - directories are treated as zero size
    • SIZE_REVERSE

      public static final Comparator<File> SIZE_REVERSE
      Reverse size comparator instance - directories are treated as zero size
    • SIZE_SUMDIR_COMPARATOR

      public static final Comparator<File> SIZE_SUMDIR_COMPARATOR
      Size comparator instance which sums the size of a directory's contents using FileUtils.sizeOfDirectory(File)
    • SIZE_SUMDIR_REVERSE

      public static final Comparator<File> SIZE_SUMDIR_REVERSE
      Reverse size comparator instance which sums the size of a directory's contents using FileUtils.sizeOfDirectory(File)
    • sumDirectoryContents

      private final boolean sumDirectoryContents
      Whether the sum of the directory's contents should be calculated.
  • Constructor Details

    • SizeFileComparator

      public SizeFileComparator()
      Constructs a file size comparator instance (directories treated as zero size).
    • SizeFileComparator

      public SizeFileComparator(boolean sumDirectoryContents)
      Constructs a file size comparator instance specifying whether the size of the directory contents should be aggregated.

      If the sumDirectoryContents is true The size of directories is calculated using FileUtils.sizeOfDirectory(File).

      Parameters:
      sumDirectoryContents - true if the sum of the directories' contents should be calculated, otherwise false if directories should be treated as size zero (see FileUtils.sizeOfDirectory(File)).
  • Method Details

    • compare

      public int compare(File file1, File file2)
      Compares the length of two files.
      Specified by:
      compare in interface Comparator<File>
      Parameters:
      file1 - The first file to compare
      file2 - The second file to compare
      Returns:
      a negative value if the first file's length is less than the second, zero if the lengths are the same and a positive value if the first files length is greater than the second file.
    • toString

      public String toString()
      String representation of this file comparator.
      Overrides:
      toString in class AbstractFileComparator
      Returns:
      String representation of this file comparator