java.nio.file
Interface FileVisitor<T>

All Known Implementing Classes:
SimpleFileVisitor

public interface FileVisitor<T>

Disabled: no SafeJ information.

A visitor of files. An implementation of this interface is provided to the walkFileTree utility method to visit each file in a 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) {
             try {
                 file.delete();
             } catch (IOException exc) {
                 // failed to delete, do error handling here
             }
             return FileVisitResult.CONTINUE;
         }
         @Override
         public FileVisitResult postVisitDirectory(Path dir, IOException e) {
             if (e == null) {
                 try {
                     dir.delete();
                 } catch (IOException exc) {
                     // failed to delete, do error handling here
                 }
             } else {
                 // directory iteration failed
             }
             return FileVisitResult.CONTINUE;
         }
     });
 

Furthermore, suppose we want to copy a file tree rooted at a source directory 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) {
                 try {
                     dir.copyTo(target.resolve(source.relativize(dir)));
                 } catch (FileAlreadyExistsException e) {
                      // ignore
                 } catch (IOException e) {
                     // copy failed, do error handling here
                     // skip rest of directory and descendants
                     return SKIP_SUBTREE;
                 }
                 return CONTINUE;
             }
             @Override
             public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
                 try {
                     file.copyTo(target.resolve(source.relativize(file)));
                 } catch (IOException e) {
                     // copy failed, do error handling here
                 }
                 return CONTINUE;
             }
         });
 

Since:
1.7

Method Summary
 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)
          Invoked for a directory before entries in the directory are visited.
 FileVisitResult preVisitDirectoryFailed(T dir, IOException exc)
          Invoked for a directory that could not be opened.
 FileVisitResult visitFile(T file, BasicFileAttributes attrs)
          Invoked for a file in a directory.
 FileVisitResult visitFileFailed(T file, IOException exc)
          Invoked for a file when its basic file attributes could not be read.
 

Method Detail

preVisitDirectory

FileVisitResult preVisitDirectory(T dir)
Class is disabled.

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

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

Parameters:
dir - a reference to the directory
Returns:
the visit result

preVisitDirectoryFailed

FileVisitResult preVisitDirectoryFailed(T dir,
                                        IOException exc)
Class is disabled.

Invoked for a directory that could not be opened.

Parameters:
dir - a reference to the directory
exc - the I/O exception thrown from the attempt to open the directory
Returns:
the visit result

visitFile

FileVisitResult visitFile(T file,
                          BasicFileAttributes attrs)
Class is disabled.

Invoked for a file in a directory.

Parameters:
file - a reference to the file
attrs - the file's basic attributes
Returns:
the visit result

visitFileFailed

FileVisitResult visitFileFailed(T file,
                                IOException exc)
Class is disabled.

Invoked for a file when its basic file attributes could not be read.

Parameters:
file - a reference to the file
exc - the I/O exception thrown from the attempt to read the file attributes
Returns:
the visit result

postVisitDirectory

FileVisitResult postVisitDirectory(T dir,
                                   IOException exc)
Class is disabled.

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 SKIP_SIBLINGS, or an I/O error when iterating over the directory).

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