- 型パラメータ:
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
- 入出力エラーが発生した場合
-