public class AccumulatorPathVisitor extends CountingPathVisitor
Use with care on large file trees as each visited Path element is remembered.
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());
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.nio.file.Path> |
dirList |
private java.util.List<java.nio.file.Path> |
fileList |
EMPTY_STRING_ARRAY| Constructor and Description |
|---|
AccumulatorPathVisitor()
Constructs a new instance.
|
AccumulatorPathVisitor(Counters.PathCounters pathCounter)
Constructs a new instance that counts file system elements.
|
AccumulatorPathVisitor(Counters.PathCounters pathCounter,
PathFilter fileFilter,
PathFilter dirFilter)
Constructs a new instance.
|
| Modifier and Type | Method and Description |
|---|---|
private void |
add(java.util.List<java.nio.file.Path> list,
java.nio.file.Path dir) |
boolean |
equals(java.lang.Object obj) |
java.util.List<java.nio.file.Path> |
getDirList()
Gets the list of visited directories.
|
java.util.List<java.nio.file.Path> |
getFileList()
Gets the list of visited files.
|
int |
hashCode() |
java.util.List<java.nio.file.Path> |
relativizeDirectories(java.nio.file.Path parent,
boolean sort,
java.util.Comparator<? super java.nio.file.Path> comparator)
Relativizes each directory path with
Path.relativize(Path) against the given parent, optionally
sorting the result. |
java.util.List<java.nio.file.Path> |
relativizeFiles(java.nio.file.Path parent,
boolean sort,
java.util.Comparator<? super java.nio.file.Path> comparator)
Relativizes each file path with
Path.relativize(Path) against the given parent, optionally
sorting the result. |
protected void |
updateDirCounter(java.nio.file.Path dir,
java.io.IOException exc)
Updates the counter for visiting the given directory.
|
protected void |
updateFileCounters(java.nio.file.Path file,
java.nio.file.attribute.BasicFileAttributes attributes)
Updates the counters for visiting the given file.
|
static AccumulatorPathVisitor |
withBigIntegerCounters()
Creates a new instance configured with a BigInteger
Counters.PathCounters. |
static AccumulatorPathVisitor |
withBigIntegerCounters(PathFilter fileFilter,
PathFilter dirFilter)
Creates a new instance configured with a BigInteger
Counters.PathCounters. |
static AccumulatorPathVisitor |
withLongCounters()
Creates a new instance configured with a long
Counters.PathCounters. |
static AccumulatorPathVisitor |
withLongCounters(PathFilter fileFilter,
PathFilter dirFilter)
Creates a new instance configured with a long
Counters.PathCounters. |
getPathCounters, postVisitDirectory, preVisitDirectory, toString, visitFileprivate final java.util.List<java.nio.file.Path> dirList
private final java.util.List<java.nio.file.Path> fileList
public AccumulatorPathVisitor()
public AccumulatorPathVisitor(Counters.PathCounters pathCounter)
pathCounter - How to count path visits.public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter)
pathCounter - How to count path visits.fileFilter - Filters which files to count.dirFilter - Filters which directories to count.public static AccumulatorPathVisitor withBigIntegerCounters()
Counters.PathCounters.Counters.PathCounters.public static AccumulatorPathVisitor withBigIntegerCounters(PathFilter fileFilter, PathFilter dirFilter)
Counters.PathCounters.fileFilter - Filters files to accumulate and count.dirFilter - Filters directories to accumulate and count.Counters.PathCounters.public static AccumulatorPathVisitor withLongCounters()
Counters.PathCounters.Counters.PathCounters.public static AccumulatorPathVisitor withLongCounters(PathFilter fileFilter, PathFilter dirFilter)
Counters.PathCounters.fileFilter - Filters files to accumulate and count.dirFilter - Filters directories to accumulate and count.Counters.PathCounters.private void add(java.util.List<java.nio.file.Path> list,
java.nio.file.Path dir)
public boolean equals(java.lang.Object obj)
equals in class CountingPathVisitorpublic java.util.List<java.nio.file.Path> getDirList()
public java.util.List<java.nio.file.Path> getFileList()
public int hashCode()
hashCode in class CountingPathVisitorpublic java.util.List<java.nio.file.Path> relativizeDirectories(java.nio.file.Path parent,
boolean sort,
java.util.Comparator<? super java.nio.file.Path> comparator)
Path.relativize(Path) against the given parent, optionally
sorting the result.parent - A parent pathsort - Whether to sortcomparator - How to sort, null uses default sorting.public java.util.List<java.nio.file.Path> relativizeFiles(java.nio.file.Path parent,
boolean sort,
java.util.Comparator<? super java.nio.file.Path> comparator)
Path.relativize(Path) against the given parent, optionally
sorting the result.parent - A parent pathsort - Whether to sortcomparator - How to sort, null uses default sorting.protected void updateDirCounter(java.nio.file.Path dir,
java.io.IOException exc)
CountingPathVisitorupdateDirCounter in class CountingPathVisitordir - the visited directory.exc - Encountered exception.protected void updateFileCounters(java.nio.file.Path file,
java.nio.file.attribute.BasicFileAttributes attributes)
CountingPathVisitorupdateFileCounters in class CountingPathVisitorfile - the visited file.attributes - the visited file attributes.