- 型パラメータ:
- T- ファイル/ディレクトリのタイプ
- 既知のすべての実装クラス:
- SimpleFileVisitor
public interface FileVisitor<T>
ファイルのビジターです。 このインタフェースの実装は、ファイル・ツリー内の各ファイルをビジットする
 
Files.walkFileTreeメソッドに渡されます。 
 使用例: ファイル・ツリーを削除するとします。 その場合、各ディレクトリの削除は、そのディレクトリ内のエントリを削除したあとで行うようにしてください。
    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;
            }
        }
    });
さらに、ファイル・ツリーをターゲットの場所にコピーするとします。 その場合、シンボリック・リンクをたどり、ターゲット・ディレクトリを作成してから、そのディレクトリ内のエントリをコピーするようにしてください。
    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;
            }
        });
- 導入されたバージョン:
- 1.7
- 
メソッドのサマリー修飾子と型メソッド説明postVisitDirectory(T dir, IOException exc) ディレクトリ内のエントリ、およびそのすべての子孫がビジットされたあとにそのディレクトリに対して呼び出されます。preVisitDirectory(T dir, BasicFileAttributes attrs) ディレクトリ内のエントリがビジットされる前に、そのディレクトリに対して呼び出されます。visitFile(T file, BasicFileAttributes attrs) ディレクトリ内のファイルに対して呼び出されます。visitFileFailed(T file, IOException exc) ビジットできなかったファイルに対して呼び出されます。
- 
メソッドの詳細- 
preVisitDirectoryディレクトリ内のエントリがビジットされる前に、そのディレクトリに対して呼び出されます。このメソッドが CONTINUEを返す場合、ディレクトリ内のエントリがビジットされます。 このメソッドがSKIP_SUBTREEまたはSKIP_SIBLINGSを返す場合、ディレクトリ(およびすべての子孫)内のエントリはビジットされません。- パラメータ:
- dir- ディレクトリへの参照
- attrs- ディレクトリの基本属性
- 戻り値:
- ビジットの結果
- スロー:
- IOException- 入出力エラーが発生した場合
 
- 
visitFileディレクトリ内のファイルに対して呼び出されます。- パラメータ:
- file- ファイルへの参照
- attrs- ファイルの基本属性
- 戻り値:
- ビジットの結果
- スロー:
- IOException- 入出力エラーが発生した場合
 
- 
visitFileFailedビジットできなかったファイルに対して呼び出されます。 このメソッドは、ファイルの属性を読み取れなかったり、ファイルが開けないディレクトリだったりなどの理由の場合に呼び出されます。- パラメータ:
- file- ファイルへの参照
- exc- ファイルへのビジットを妨げた入出力例外
- 戻り値:
- ビジットの結果
- スロー:
- IOException- 入出力エラーが発生した場合
 
- 
postVisitDirectoryディレクトリ内のエントリ、およびそのすべての子孫がビジットされたあとにそのディレクトリに対して呼び出されます。 このメソッドは、ディレクトリの反復処理が早く完了しすぎた場合(visitFileメソッドがSKIP_SIBLINGSを返したり、ディレクトリに対する反復処理時に入出力エラーが発生したりすることにより)にも呼び出されます。- パラメータ:
- dir- ディレクトリへの参照
- exc- エラーが発生せずにディレクトリの反復が完了した場合は- null、そうでない場合はディレクトリの反復が早く完了させた入出力例外
- 戻り値:
- ビジットの結果
- スロー:
- IOException- 入出力エラーが発生した場合
 
 
-