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 directory Files.walkFileTree(dir, Collections.emptySet(), 1, visitor); System.out.println(visitor.getPathCounters()); System.out.println(visitor.getFileList()); // visitor.getPathCounters().reset(); // // Walk directory tree Files.walkFileTree(dir, visitor); System.out.println(visitor.getPathCounters()); System.out.println(visitor.getDirList()); System.out.println(visitor.getFileList());
- Since:
- 2.7
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.apache.commons.io.file.CountingPathVisitor
CountingPathVisitor.AbstractBuilder<T,
B extends CountingPathVisitor.AbstractBuilder<T, B>> -
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.AccumulatorPathVisitor
(Counters.PathCounters pathCounter) Deprecated.Usebuilder()
.AccumulatorPathVisitor
(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter) Deprecated.Usebuilder()
.AccumulatorPathVisitor
(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path, IOException, FileVisitResult> visitFileFailed) Deprecated.Usebuilder()
. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()
Builds instances ofAccumulatorPathVisitor
.boolean
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.protected void
updateDirCounter
(Path dir, IOException exc) Updates the counter for visiting the given directory.protected void
updateFileCounters
(Path file, BasicFileAttributes attributes) Updates the counters for visiting the given file.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
Deprecated.Usebuilder()
.Constructs a new instance with a noop path counter.- Since:
- 2.9.0
-
AccumulatorPathVisitor
Deprecated.Usebuilder()
.Constructs a new instance that counts file system elements.- Parameters:
pathCounter
- How to count path visits.
-
AccumulatorPathVisitor
@Deprecated public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter) Deprecated.Usebuilder()
.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
@Deprecated public AccumulatorPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path, IOException, FileVisitResult> visitFileFailed) Deprecated.Usebuilder()
.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
-
builder
Builds instances ofAccumulatorPathVisitor
.- Returns:
- a new builder.
- Since:
- 2.19.0
-
withBigIntegerCounters
Constructs a new instance configured with a BigIntegerCounters.PathCounters
.- Returns:
- a new instance configured with a BigInteger
Counters.PathCounters
. - See Also:
-
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
- See Also:
-
withLongCounters
Constructs a new instance configured with a longCounters.PathCounters
.- Returns:
- a new instance configured with a long
Counters.PathCounters
. - See Also:
-
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
- See Also:
-
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
- 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
-
updateDirCounter
Description copied from class:CountingPathVisitor
Updates the counter for visiting the given directory.- Overrides:
updateDirCounter
in classCountingPathVisitor
- Parameters:
dir
- the visited directory.exc
- Encountered exception.
-
updateFileCounters
Description copied from class:CountingPathVisitor
Updates the counters for visiting the given file.- Overrides:
updateFileCounters
in classCountingPathVisitor
- Parameters:
file
- the visited file.attributes
- the visited file attributes.
-
builder()
.