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; } });
修飾子と型 | メソッドと説明 |
---|---|
FileVisitResult |
postVisitDirectory(T dir, IOException exc)
ディレクトリ内のエントリ、およびそのすべての子孫がビジットされたあとにそのディレクトリに対して呼び出されます。
|
FileVisitResult |
preVisitDirectory(T dir, BasicFileAttributes attrs)
ディレクトリ内のエントリがビジットされる前に、そのディレクトリに対して呼び出されます。
|
FileVisitResult |
visitFile(T file, BasicFileAttributes attrs)
ディレクトリ内のファイルに対して呼び出されます。
|
FileVisitResult |
visitFileFailed(T file, IOException exc)
ビジットできなかったファイルに対して呼び出されます。
|
FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) throws IOException
このメソッドが CONTINUE
を返す場合、ディレクトリ内のエントリがビジットされます。このメソッドが SKIP_SUBTREE
または SKIP_SIBLINGS
を返す場合、ディレクトリ (およびすべての子孫) 内のエントリはビジットされません。
dir
- ディレクトリへの参照attrs
- ディレクトリの基本属性IOException
- 入出力エラーが発生した場合FileVisitResult visitFile(T file, BasicFileAttributes attrs) throws IOException
file
- ファイルへの参照attrs
- ファイルの基本属性IOException
- 入出力エラーが発生した場合FileVisitResult visitFileFailed(T file, IOException exc) throws IOException
file
- ファイルへの参照exc
- ファイルへのビジットを妨げた入出力例外IOException
- 入出力エラーが発生した場合FileVisitResult postVisitDirectory(T dir, IOException exc) throws IOException
visitFile
メソッドが SKIP_SIBLINGS
を返したり、ディレクトリに対する反復処理時に入出力エラーが発生したりすることにより) にも呼び出されます。dir
- ディレクトリへの参照exc
- エラーが発生せずにディレクトリの反復が完了した場合は null
、そうでない場合はディレクトリの反復が早く完了させた入出力例外IOException
- 入出力エラーが発生した場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.