org.apache.commons.io.comparator

Class SizeFileComparator

public class SizeFileComparator extends Object implements Comparator, Serializable

Compare the length/size of two files for order (see File#length() and sizeOfDirectory).

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 = ...
       Collections.sort(list, LengthFileComparator.LENGTH_COMPARATOR);
 

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

       File[] array = ...
       Arrays.sort(array, LengthFileComparator.LENGTH_REVERSE);
 

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

Since: Commons IO 1.4

Version: $Revision: 609243 $ $Date: 2008-01-06 00:30:42 +0000 (Sun, 06 Jan 2008) $

Field Summary
booleansumDirectoryContents
Whether the sum of the directory's contents should be calculated.
static ComparatorSIZE_COMPARATOR
Size comparator instance - directories are treated as zero size
static ComparatorSIZE_REVERSE
Reverse size comparator instance - directories are treated as zero size
static ComparatorSIZE_SUMDIR_COMPARATOR
Size comparator instance which sums the size of a directory's contents using
static ComparatorSIZE_SUMDIR_REVERSE
Reverse size comparator instance which sums the size of a directory's contents using
Constructor Summary
SizeFileComparator()
Construct a file size comparator instance (directories treated as zero size).
SizeFileComparator(boolean sumDirectoryContents)
Construct a file size comparator instance specifying whether the size of the directory contents should be aggregated.
Method Summary
intcompare(Object obj1, Object obj2)
Compare the length of two files.

Field Detail

sumDirectoryContents

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

SIZE_COMPARATOR

public static final Comparator SIZE_COMPARATOR
Size comparator instance - directories are treated as zero size

SIZE_REVERSE

public static final Comparator SIZE_REVERSE
Reverse size comparator instance - directories are treated as zero size

SIZE_SUMDIR_COMPARATOR

public static final Comparator SIZE_SUMDIR_COMPARATOR
Size comparator instance which sums the size of a directory's contents using sizeOfDirectory

SIZE_SUMDIR_REVERSE

public static final Comparator SIZE_SUMDIR_REVERSE
Reverse size comparator instance which sums the size of a directory's contents using sizeOfDirectory

Constructor Detail

SizeFileComparator

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

SizeFileComparator

public SizeFileComparator(boolean sumDirectoryContents)
Construct 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 sizeOfDirectory.

Parameters: sumDirectoryContents true if the sum of the directoryies contents should be calculated, otherwise false if directories should be treated as size zero (see sizeOfDirectory).

Method Detail

compare

public int compare(Object obj1, Object obj2)
Compare the length of two files.

Parameters: obj1 The first file to compare obj2 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.

Copyright (c) 2002-2011 Apache Software Foundation