Module java.base
Package java.nio.file

## 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
`protected` `SimpleFileVisitor()` Initializes a new instance of this class.

### Method Summary

All Methods Instance Methods Concrete Methods
`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 inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SimpleFileVisitor

    protected SimpleFileVisitor()

Initializes a new instance of this class.

### Method Detail

#### 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