Package org.apache.commons.io.file

# Class CountingPathVisitor

java.lang.Object
java.nio.file.SimpleFileVisitor<Path>
org.apache.commons.io.file.SimplePathVisitor
org.apache.commons.io.file.CountingPathVisitor

All Implemented Interfaces:
  `FileVisitor<Path>`, `PathVisitor`

Direct Known Subclasses:
  `AccumulatorPathVisitor`, `CleaningPathVisitor`, `CopyDirectoryVisitor`, `DeletingPathVisitor`

public class CountingPathVisitor extends SimplePathVisitor
Counts files, directories, and sizes, as a visit proceeds.

Since:
  2.7

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CountingPathVisitor(Counters.PathCounters pathCounter)`
  Constructs a new instance.
  `CountingPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter)`
  Constructs a new instance.
  `CountingPathVisitor(Counters.PathCounters pathCounter, PathFilter fileFilter, PathFilter dirFilter, IOBiFunction<Path,IOException,FileVisitResult> visitFileFailed)`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  `Counters.PathCounters`
  `getPathCounters()`
  Gets the visitation counts.
  `int`
  `hashCode()`
  `FileVisitResult`
  `postVisitDirectory(Path dir, IOException exc)`
  `FileVisitResult`
  `preVisitDirectory(Path dir, BasicFileAttributes attributes)`
  `String`
  `toString()`
  `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.
  `FileVisitResult`
  `visitFile(Path file, BasicFileAttributes attributes)`
  `static CountingPathVisitor`
  `withBigIntegerCounters()`
  Constructs a new instance configured with a `BigInteger` `Counters.PathCounters`.
  `static CountingPathVisitor`
  `withLongCounters()`
  Constructs a new instance configured with a `long` `Counters.PathCounters`.

  ### Methods inherited from class org.apache.commons.io.file.SimplePathVisitor

  `visitFileFailed`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### CountingPathVisitor

    public CountingPathVisitor(Counters.PathCounters pathCounter)
    Constructs a new instance.
    Parameters:
      `pathCounter` - How to count path visits.

  - ### CountingPathVisitor

    public CountingPathVisitor(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

  - ### CountingPathVisitor

    public CountingPathVisitor(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 on `SimplePathVisitor.visitFileFailed(Path, IOException)`.
    Since:
      2.12.0

- ## Method Details

  - ### withBigIntegerCounters

    public static CountingPathVisitor withBigIntegerCounters()
    Constructs a new instance configured with a `BigInteger` `Counters.PathCounters`.
    Returns:
      a new instance configured with a `BigInteger` `Counters.PathCounters`.

  - ### withLongCounters

    public static CountingPathVisitor withLongCounters()
    Constructs a new instance configured with a `long` `Counters.PathCounters`.
    Returns:
      a new instance configured with a `long` `Counters.PathCounters`.

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### getPathCounters

    public Counters.PathCounters getPathCounters()
    Gets the visitation counts.
    Returns:
      the visitation counts.

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### postVisitDirectory

    public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException
    Specified by:
      `postVisitDirectory` in interface `FileVisitor<Path>`
    Overrides:
      `postVisitDirectory` in class `SimpleFileVisitor<Path>`
    Throws:
      `IOException`

  - ### preVisitDirectory

    public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attributes) throws IOException
    Specified by:
      `preVisitDirectory` in interface `FileVisitor<Path>`
    Overrides:
      `preVisitDirectory` in class `SimpleFileVisitor<Path>`
    Throws:
      `IOException`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### updateDirCounter

    protected void updateDirCounter(Path dir, IOException exc)
    Updates the counter for visiting the given directory.
    Parameters:
      `dir` - the visited directory.
      `exc` - Encountered exception.
    Since:
      2.9.0

  - ### updateFileCounters

    protected void updateFileCounters(Path file, BasicFileAttributes attributes)
    Updates the counters for visiting the given file.
    Parameters:
      `file` - the visited file.
      `attributes` - the visited file attributes.

  - ### visitFile

    public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException
    Specified by:
      `visitFile` in interface `FileVisitor<Path>`
    Overrides:
      `visitFile` in class `SimpleFileVisitor<Path>`
    Throws:
      `IOException`