Package org.apache.commons.io.file
Class AccumulatorPathVisitor
java.lang.Object
java.nio.file.SimpleFileVisitor<Path>
org.apache.commons.io.file.SimplePathVisitor
org.apache.commons.io.file.CountingPathVisitor
org.apache.commons.io.file.AccumulatorPathVisitor
- All Implemented Interfaces:
FileVisitor<Path>
,PathVisitor
Accumulates normalized paths during visitation.
Use with care on large file trees as each visited Path element is remembered.
Example
Path dir = PathUtils.current(); // We are interested in files older than one day Instant cutoff = Instant.now().minus(Duration.ofDays(1)); 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());
- Since:
- 2.7
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs 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.AccumulatorPathVisitor
(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path, IOException, FileVisitResult> visitFileFailed) Constructs a new instance. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Gets a copy of the list of visited directories.Gets a copy of the list of visited files.int
hashCode()
relativizeDirectories
(Path parent, boolean sort, Comparator<? super Path> comparator) Relativizes each directory path withPath.relativize(Path)
against the givenparent
, optionally sorting the result.relativizeFiles
(Path parent, boolean sort, Comparator<? super Path> comparator) Relativizes each file path withPath.relativize(Path)
against the givenparent
, optionally sorting the result.static AccumulatorPathVisitor
Constructs a new instance configured with a BigIntegerCounters.PathCounters
.static AccumulatorPathVisitor
withBigIntegerCounters
(PathFilter fileFilter, PathFilter dirFilter) Constructs a new instance configured with a BigIntegerCounters.PathCounters
.static AccumulatorPathVisitor
Constructs a new instance configured with a longCounters.PathCounters
.static AccumulatorPathVisitor
withLongCounters
(PathFilter fileFilter, PathFilter dirFilter) Constructs a new instance configured with a longCounters.PathCounters
.Methods inherited from class org.apache.commons.io.file.CountingPathVisitor
getPathCounters, postVisitDirectory, preVisitDirectory, toString, visitFile
Methods inherited from class org.apache.commons.io.file.SimplePathVisitor
visitFileFailed
-
Constructor Details
-
AccumulatorPathVisitor
public AccumulatorPathVisitor()Constructs a new instance.- Since:
- 2.9.0
-
AccumulatorPathVisitor
Constructs a new instance that counts file system elements.- Parameters:
pathCounter
- How to count path visits.
-
AccumulatorPathVisitor
public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter) Constructs a new instance.- Parameters:
pathCounter
- How to count path visits.fileFilter
- Filters which files to count.dirFilter
- Filters which directories to count.- Since:
- 2.9.0
-
AccumulatorPathVisitor
public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path, IOException, FileVisitResult> visitFileFailed) Constructs a new instance.- Parameters:
pathCounter
- How to count path visits.fileFilter
- Filters which files to count.dirFilter
- Filters which directories to count.visitFileFailed
- Called onSimplePathVisitor.visitFileFailed(Path, IOException)
.- Since:
- 2.12.0
-
-
Method Details
-
withBigIntegerCounters
Constructs a new instance configured with a BigIntegerCounters.PathCounters
.- Returns:
- a new instance configured with a BigInteger
Counters.PathCounters
.
-
withBigIntegerCounters
public static AccumulatorPathVisitor withBigIntegerCounters(PathFilter fileFilter, PathFilter dirFilter) Constructs a new instance configured with a BigIntegerCounters.PathCounters
.- Parameters:
fileFilter
- Filters files to accumulate and count.dirFilter
- Filters directories to accumulate and count.- Returns:
- a new instance configured with a long
Counters.PathCounters
. - Since:
- 2.9.0
-
withLongCounters
Constructs a new instance configured with a longCounters.PathCounters
.- Returns:
- a new instance configured with a long
Counters.PathCounters
.
-
withLongCounters
Constructs a new instance configured with a longCounters.PathCounters
.- Parameters:
fileFilter
- Filters files to accumulate and count.dirFilter
- Filters directories to accumulate and count.- Returns:
- a new instance configured with a long
Counters.PathCounters
. - Since:
- 2.9.0
-
equals
- Overrides:
equals
in classCountingPathVisitor
-
getDirList
Gets a copy of the list of visited directories.- Returns:
- a copy of the list of visited directories.
-
getFileList
Gets a copy of the list of visited files.- Returns:
- a copy of the list of visited files.
-
hashCode
public int hashCode()- Overrides:
hashCode
in classCountingPathVisitor
-
relativizeDirectories
public List<Path> relativizeDirectories(Path parent, boolean sort, Comparator<? super Path> comparator) Relativizes each directory path withPath.relativize(Path)
against the givenparent
, optionally sorting the result.- Parameters:
parent
- A parent pathsort
- Whether to sortcomparator
- How to sort, null uses default sorting.- Returns:
- A new list
-
relativizeFiles
Relativizes each file path withPath.relativize(Path)
against the givenparent
, optionally sorting the result.- Parameters:
parent
- A parent pathsort
- Whether to sortcomparator
- How to sort, null uses default sorting.- Returns:
- A new list
-