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 и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.