|
Spec-Zone .ru
спецификации, руководства, описания, API
|
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. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92