# Class SimpleFileVisitor<T>

java.lang.Object
java.nio.file.SimpleFileVisitor<T>

Type Parameters:
  `T` - The type of reference to the files

All Implemented Interfaces:
  `FileVisitor<T>`

public class SimpleFileVisitor<T> extends Object implements FileVisitor<T>
A simple visitor of files with default behavior to visit all files and to re-throw I/O errors.

Methods in this class may be overridden subject to their general contract.

Since:
  1.7

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `SimpleFileVisitor()`
  Initializes a new instance of this class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `FileVisitResult`
  `postVisitDirectory(T dir, IOException exc)`
  Invoked for a directory after entries in the directory, and all of their descendants, have been visited.
  `FileVisitResult`
  `preVisitDirectory(T dir, BasicFileAttributes attrs)`
  Invoked for a directory before entries in the directory are visited.
  `FileVisitResult`
  `visitFile(T file, BasicFileAttributes attrs)`
  Invoked for a file in a directory.
  `FileVisitResult`
  `visitFileFailed(T file, IOException exc)`
  Invoked for a file that could not be visited.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### SimpleFileVisitor

    protected SimpleFileVisitor()
    Initializes a new instance of this class.

- ## Method Details

  - ### preVisitDirectory

    public FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) throws IOException
    Invoked for a directory before entries in the directory are visited.

    Unless overridden, this method returns `CONTINUE`.

    Specified by:
      `preVisitDirectory` in interface `FileVisitor<T>`
    Parameters:
      `dir` - a reference to the directory
      `attrs` - the directory's basic attributes
    Returns:
      the visit result
    Throws:
      `IOException` - if an I/O error occurs

  - ### visitFile

    public FileVisitResult visitFile(T file, BasicFileAttributes attrs) throws IOException
    Invoked for a file in a directory.

    Unless overridden, this method returns `CONTINUE`.

    Specified by:
      `visitFile` in interface `FileVisitor<T>`
    Parameters:
      `file` - a reference to the file
      `attrs` - the file's basic attributes
    Returns:
      the visit result
    Throws:
      `IOException` - if an I/O error occurs

  - ### visitFileFailed

    public FileVisitResult visitFileFailed(T file, IOException exc) throws IOException
    Invoked for a file that could not be visited.

    Unless overridden, this method re-throws the I/O exception that prevented the file from being visited.

    Specified by:
      `visitFileFailed` in interface `FileVisitor<T>`
    Parameters:
      `file` - a reference to the file
      `exc` - the I/O exception that prevented the file from being visited
    Returns:
      the visit result
    Throws:
      `IOException` - if an I/O error occurs

  - ### postVisitDirectory

    public FileVisitResult postVisitDirectory(T dir, IOException exc) throws IOException
    Invoked for a directory after entries in the directory, and all of their descendants, have been visited.

    Unless overridden, this method returns `CONTINUE` if the directory iteration completes without an I/O exception; otherwise this method re-throws the I/O exception that caused the iteration of the directory to terminate prematurely.

    Specified by:
      `postVisitDirectory` in interface `FileVisitor<T>`
    Parameters:
      `dir` - a reference to the directory
      `exc` - `null` if the iteration of the directory completes without an error; otherwise the I/O exception that caused the iteration of the directory to complete prematurely
    Returns:
      the visit result
    Throws:
      `IOException` - if an I/O error occurs