Class SizeFileComparator

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

public class SizeFileComparator extends Object 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

  • Constructor Details

    • 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.
      Returns:
      String representation of this file comparator
    • sort

      public File[] sort(File... files)
      Sorts an array of files.

      This method uses Arrays.sort(Object[], Comparator) and returns the original array.

      Parameters:
      files - The files to sort, may be null.
      Returns:
      The sorted array.
      Since:
      2.0
    • sort

      public List<File> sort(List<File> files)
      Sorts a List of files.

      This method uses List.sort(Comparator) and returns the original list.

      Parameters:
      files - The files to sort, may be null.
      Returns:
      The sorted list.
      Since:
      2.0