Spec-Zone.ru › Kotlin 2

fileVisitor

kotlin-stdlib/kotlin.io.path/fileVisitor

Версия Kotlin: 2.1

fun fileVisitor(builderAction: FileVisitorBuilder.() -> Unit): FileVisitor<Path>

Создаёт FileVisitor, реализация которого определяется в builderAction.

По умолчанию возвращённый посетитель файлов обходит все файлы и повторно выбрасывает ошибки ввода-вывода, то есть:

  • FileVisitor.preVisitDirectory возвращает FileVisitResult.CONTINUE.

  • FileVisitor.visitFile возвращает FileVisitResult.CONTINUE.

  • FileVisitor.visitFileFailed повторно выбрасывает исключение ввода-вывода, которое помешало посетить файл.

  • FileVisitor.postVisitDirectory возвращает FileVisitResult.CONTINUE, если обход каталога завершился без исключения ввода-вывода; в противном случае повторно выбрасывает исключение ввода-вывода, из-за которого обход завершился преждевременно.

Чтобы переопределить функцию, предоставьте её реализацию для соответствующей функции FileVisitorBuilder, переданного в качестве получателя в builderAction. Обратите внимание, что каждую функцию можно переопределить только один раз. Повторное переопределение функции вызывает IllegalStateException.

Построитель действителен только внутри функции builderAction. Использование за пределами этой функции вызывает IllegalStateException.

Пример:

val cleanVisitor = fileVisitor {
onPreVisitDirectory { directory, _ ->
if (directory.name == "build") {
directory.deleteRecursively()
FileVisitResult.SKIP_SUBTREE
} else {
FileVisitResult.CONTINUE
}
}

onVisitFile { file, _ ->
if (file.extension == "class") {
file.deleteExisting()
}
FileVisitResult.CONTINUE
}
}

См. также

FileVisitor
FileVisitorBuilder

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.io.path/file-visitor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API