Package org.apache.commons.io.filefilter
Class AgeFileFilter
- java.lang.Object
-
- org.apache.commons.io.filefilter.AbstractFileFilter
-
- org.apache.commons.io.filefilter.AgeFileFilter
-
- 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 AgeFileFilter extends AbstractFileFilter implements java.io.Serializable
Filters files based on a cutoff time, can filter either newer files or files equal to or older.For example, to print all files and directories in the current directory older than one day:
Using Classic IO
Path dir = Paths.get(""); // We are interested in files older than one day long cutoff = System.currentTimeMillis() - (24 * 60 * 60 * 1000); String[] files = dir.list(new AgeFileFilter(cutoff)); for (String file : files) { System.out.println(file); }
Using NIO
Path dir = Paths.get(""); // We are interested in files older than one day long cutoff = System.currentTimeMillis() - (24 * 60 * 60 * 1000); AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(new AgeFileFilter(cutoff)); // // 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());
-
-
Field Summary
-
Fields inherited from interface org.apache.commons.io.filefilter.IOFileFilter
EMPTY_STRING_ARRAY
-
-
Constructor Summary
Constructors Constructor Description AgeFileFilter(long cutoffMillis)
Constructs a new age file filter for files equal to or older than a certain cutoffAgeFileFilter(long cutoffMillis, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain cutoff.AgeFileFilter(java.io.File cutoffReference)
Constructs a new age file filter for files older than (at or before) a certain File (whose last modification time will be used as reference).AgeFileFilter(java.io.File cutoffReference, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain File (whose last modification time will be used as reference).AgeFileFilter(java.util.Date cutoffDate)
Constructs a new age file filter for files older than (at or before) a certain cutoff date.AgeFileFilter(java.util.Date cutoffDate, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain cutoff date.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(java.io.File file)
Checks to see if the last modification of the file matches cutoff favorably.java.nio.file.FileVisitResult
accept(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
Checks to see if the last modification of the file matches cutoff favorably.java.lang.String
toString()
Provide a String representation of this file filter.-
Methods inherited from class org.apache.commons.io.filefilter.AbstractFileFilter
accept, postVisitDirectory, preVisitDirectory, visitFile, visitFileFailed
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.commons.io.filefilter.IOFileFilter
and, negate, or
-
-
-
-
Constructor Detail
-
AgeFileFilter
public AgeFileFilter(java.util.Date cutoffDate)
Constructs a new age file filter for files older than (at or before) a certain cutoff date.- Parameters:
cutoffDate
- the threshold age of the files
-
AgeFileFilter
public AgeFileFilter(java.util.Date cutoffDate, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain cutoff date.- Parameters:
cutoffDate
- the threshold age of the filesacceptOlder
- if true, older files (at or before the cutoff) are accepted, else newer ones (after the cutoff).
-
AgeFileFilter
public AgeFileFilter(java.io.File cutoffReference)
Constructs a new age file filter for files older than (at or before) a certain File (whose last modification time will be used as reference).- Parameters:
cutoffReference
- the file whose last modification time is used as the threshold age of the files
-
AgeFileFilter
public AgeFileFilter(java.io.File cutoffReference, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain File (whose last modification time will be used as reference).- Parameters:
cutoffReference
- the file whose last modification time is used as the threshold age of the filesacceptOlder
- if true, older files (at or before the cutoff) are accepted, else newer ones (after the cutoff).
-
AgeFileFilter
public AgeFileFilter(long cutoffMillis)
Constructs a new age file filter for files equal to or older than a certain cutoff- Parameters:
cutoffMillis
- The cutoff time threshold measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970).
-
AgeFileFilter
public AgeFileFilter(long cutoffMillis, boolean acceptOlder)
Constructs a new age file filter for files on any one side of a certain cutoff.- Parameters:
cutoffMillis
- The cutoff time threshold measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970).acceptOlder
- if true, older files (at or before the cutoff) are accepted, else newer ones (after the cutoff).
-
-
Method Detail
-
accept
public boolean accept(java.io.File file)
Checks to see if the last modification of the file matches cutoff favorably.If last modification time equals cutoff and newer files are required, file IS NOT selected. If last modification time equals cutoff and older files are required, file IS selected.
- Specified by:
accept
in interfacejava.io.FileFilter
- Specified by:
accept
in interfaceIOFileFilter
- Overrides:
accept
in classAbstractFileFilter
- Parameters:
file
- the File to check- Returns:
- true if the file name matches
-
accept
public java.nio.file.FileVisitResult accept(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
Checks to see if the last modification of the file matches cutoff favorably.If last modification time equals cutoff and newer files are required, file IS NOT selected. If last modification time equals cutoff and older files are required, file IS selected.
- Specified by:
accept
in interfaceIOFileFilter
- Specified by:
accept
in interfacePathFilter
- Parameters:
file
- the File to checkattributes
- the file's basic attributes (TODO may be null).- Returns:
- true if the file name matches
- Since:
- 2.9.0
-
toString
public java.lang.String toString()
Provide a String representation of this file filter.- Overrides:
toString
in classAbstractFileFilter
- Returns:
- a String representation
-
-