# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Methods

# FileVisitor

`public interface FileVisitor`
``

java.nio.file.FileVisitor<T>

Known indirect subclasses SimpleFileVisitor<T>
SimpleFileVisitor<T> | A simple visitor of files with default behavior to visit all files and to re-throw I/O errors.

A visitor of files. An implementation of this interface is provided to the `Files#walkFileTree` methods to visit each file in a file tree.

Usage Examples: Suppose we want to delete a file tree. In that case, each directory should be deleted after the entries in the directory are deleted.

         Path start = ...
         Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
             @Override
             public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                 throws IOException
             {
                 Files.delete(file);
                 return FileVisitResult.CONTINUE;
             }
             @Override
             public FileVisitResult postVisitDirectory(Path dir, IOException e)
                 throws IOException
             {
                 if (e == null) {
                     Files.delete(dir);
                     return FileVisitResult.CONTINUE;
                 } else {
                     // directory iteration failed
                     throw e;
                 }
             }
         });

Furthermore, suppose we want to copy a file tree to a target location. In that case, symbolic links should be followed and the target directory should be created before the entries in the directory are copied.

         final Path source = ...
         final Path target = ...

         Files.walkFileTree(source, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE,
             new SimpleFileVisitor<Path>() {
                 @Override
                 public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
                     throws IOException
                 {
                     Path targetdir = target.resolve(source.relativize(dir));
                     try {
                         Files.copy(dir, targetdir);
                     } catch (FileAlreadyExistsException e) {
                          if (!Files.isDirectory(targetdir))
                              throw e;
                     }
                     return CONTINUE;
                 }
                 @Override
                 public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                     throws IOException
                 {
                     Files.copy(file, target.resolve(source.relativize(file)));
                     return CONTINUE;
                 }
             });

## Summary

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

## Public methods

### postVisitDirectory

    public abstract FileVisitResult postVisitDirectory (T dir,
                    IOException exc)

Invoked for a directory after entries in the directory, and all of their descendants, have been visited. This method is also invoked when iteration of the directory completes prematurely (by a `visitFile` method returning `FileVisitResult#SKIP_SIBLINGS`, or an I/O error when iterating over the directory).

Parameters
`dir` | `T`: a reference to the directory
`exc` | `IOException`: `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
`FileVisitResult` | the visit result

Throws
`IOException` | if an I/O error occurs

### preVisitDirectory

    public abstract FileVisitResult preVisitDirectory (T dir,
                    BasicFileAttributes attrs)

Invoked for a directory before entries in the directory are visited.

If this method returns `FileVisitResult#CONTINUE`, then entries in the directory are visited. If this method returns `FileVisitResult#SKIP_SUBTREE` or `FileVisitResult#SKIP_SIBLINGS` then entries in the directory (and any descendants) will not be visited.

Parameters
`dir` | `T`: a reference to the directory
`attrs` | `BasicFileAttributes`: the directory's basic attributes

Returns
`FileVisitResult` | the visit result

Throws
`IOException` | if an I/O error occurs

### visitFile

    public abstract FileVisitResult visitFile (T file,
                    BasicFileAttributes attrs)

Invoked for a file in a directory.

Parameters
`file` | `T`: a reference to the file
`attrs` | `BasicFileAttributes`: the file's basic attributes

Returns
`FileVisitResult` | the visit result

Throws
`IOException` | if an I/O error occurs

### visitFileFailed

    public abstract FileVisitResult visitFileFailed (T file,
                    IOException exc)

Invoked for a file that could not be visited. This method is invoked if the file's attributes could not be read, the file is a directory that could not be opened, and other reasons.

Parameters
`file` | `T`: a reference to the file
`exc` | `IOException`: the I/O exception that prevented the file from being visited

Returns
`FileVisitResult` | the visit result

Throws
`IOException` | if an I/O error occurs

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*