Package org.apache.commons.io.file
Class AccumulatorPathVisitor
- java.lang.Object
-
- java.nio.file.SimpleFileVisitor<java.nio.file.Path>
-
- org.apache.commons.io.file.SimplePathVisitor
-
- org.apache.commons.io.file.CountingPathVisitor
-
- org.apache.commons.io.file.AccumulatorPathVisitor
-
- All Implemented Interfaces:
java.nio.file.FileVisitor<java.nio.file.Path>,PathVisitor
public class AccumulatorPathVisitor extends CountingPathVisitor
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 Classes Modifier and Type Class Description static classAccumulatorPathVisitor.BuilderBuilds instances ofAccumulatorPathVisitor.-
Nested classes/interfaces inherited from class org.apache.commons.io.file.CountingPathVisitor
CountingPathVisitor.AbstractBuilder<T,B extends CountingPathVisitor.AbstractBuilder<T,B>>
-
-
Constructor Summary
Constructors Constructor Description AccumulatorPathVisitor()Deprecated.Usebuilder().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<java.nio.file.Path,java.io.IOException,java.nio.file.FileVisitResult> visitFileFailed)Deprecated.Usebuilder().
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AccumulatorPathVisitor.Builderbuilder()Builds instances ofAccumulatorPathVisitor.booleanequals(java.lang.Object obj)java.util.List<java.nio.file.Path>getDirList()Gets a copy of the list of visited directories.java.util.List<java.nio.file.Path>getFileList()Gets a copy of the list of visited files.inthashCode()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 withPath.relativize(Path)against the givenparent, 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 withPath.relativize(Path)against the givenparent, optionally sorting the result.protected voidupdateDirCounter(java.nio.file.Path dir, java.io.IOException exc)Updates the counter for visiting the given directory.protected voidupdateFileCounters(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)Updates the counters for visiting the given file.static AccumulatorPathVisitorwithBigIntegerCounters()Constructs a new instance configured with a BigIntegerCounters.PathCounters.static AccumulatorPathVisitorwithBigIntegerCounters(PathFilter fileFilter, PathFilter dirFilter)Constructs a new instance configured with a BigIntegerCounters.PathCounters.static AccumulatorPathVisitorwithLongCounters()Constructs a new instance configured with a longCounters.PathCounters.static AccumulatorPathVisitorwithLongCounters(PathFilter fileFilter, PathFilter dirFilter)Constructs a new instance configured with a longCounters.PathCounters.-
Methods inherited from class org.apache.commons.io.file.CountingPathVisitor
accept, getPathCounters, postVisitDirectory, preVisitDirectory, toString, visitFile
-
Methods inherited from class org.apache.commons.io.file.SimplePathVisitor
visitFileFailed
-
-
-
-
Constructor Detail
-
AccumulatorPathVisitor
@Deprecated public AccumulatorPathVisitor()
Deprecated.Usebuilder().Constructs a new instance with a noop path counter.- Since:
- 2.9.0
-
AccumulatorPathVisitor
@Deprecated public AccumulatorPathVisitor(Counters.PathCounters pathCounter)
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<java.nio.file.Path,java.io.IOException,java.nio.file.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 Detail
-
builder
public static AccumulatorPathVisitor.Builder builder()
Builds instances ofAccumulatorPathVisitor.- Returns:
- a new builder.
- Since:
- 2.19.0
-
withBigIntegerCounters
public static AccumulatorPathVisitor withBigIntegerCounters()
Constructs a new instance configured with a BigIntegerCounters.PathCounters.- Returns:
- a new instance configured with a BigInteger
Counters.PathCounters. - See Also:
builder(),AccumulatorPathVisitor.Builder
-
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:
builder(),AccumulatorPathVisitor.Builder
-
withLongCounters
public static AccumulatorPathVisitor withLongCounters()
Constructs a new instance configured with a longCounters.PathCounters.- Returns:
- a new instance configured with a long
Counters.PathCounters. - See Also:
builder(),AccumulatorPathVisitor.Builder
-
withLongCounters
public static AccumulatorPathVisitor withLongCounters(PathFilter fileFilter, PathFilter dirFilter)
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:
builder(),AccumulatorPathVisitor.Builder
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classCountingPathVisitor
-
getDirList
public java.util.List<java.nio.file.Path> getDirList()
Gets a copy of the list of visited directories.- Returns:
- a copy of the list of visited directories.
-
getFileList
public java.util.List<java.nio.file.Path> getFileList()
Gets a copy of the list of visited files.- Returns:
- a copy of the list of visited files.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classCountingPathVisitor
-
relativizeDirectories
public 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 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
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)
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
protected void updateDirCounter(java.nio.file.Path dir, java.io.IOException exc)
Description copied from class:CountingPathVisitorUpdates the counter for visiting the given directory.- Overrides:
updateDirCounterin classCountingPathVisitor- Parameters:
dir- the visited directory.exc- Encountered exception.
-
updateFileCounters
protected void updateFileCounters(java.nio.file.Path file, java.nio.file.attribute.BasicFileAttributes attributes)
Description copied from class:CountingPathVisitorUpdates the counters for visiting the given file.- Overrides:
updateFileCountersin classCountingPathVisitor- Parameters:
file- the visited file.attributes- the visited file attributes.
-
-