visit File Tree
Начиная с Kotlin: 2.1
fun Path.visitFileTree(visitor: FileVisitor<Path>, maxDepth: Int = Int.MAX_VALUE, followLinks: Boolean = false)
Обходит этот каталог и все его содержимое с помощью указанного обходчика.
Обход выполняется в порядке обхода в глубину и начинается с этого каталога. Указанный обходчик вызывается для каждой встреченной записи.
Пример:
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
}
}
projectDirectory.visitFileTree(cleanVisitor)
Параметры
FileVisitor, получающий обратные вызовы.
Максимальная глубина обхода. По умолчанию ограничение отсутствует.
Указывает, следует ли переходить по символическим ссылкам; по умолчанию false. Если true, обход переходит по символическим ссылкам и посещает содержимое каталогов, на которые они указывают.
См. также
Исключения
Если maxDepth отрицателен.
Если установлен менеджер безопасности и он запрещает доступ к записи, обнаруженной во время обхода.
Если функция обходчика выбрасывает исключение ввода-вывода.
fun Path.visitFileTree(maxDepth: Int = Int.MAX_VALUE, followLinks: Boolean = false, builderAction: FileVisitorBuilder.() -> Unit)
Обходит этот каталог и все его содержимое с помощью FileVisitor, заданного в builderAction.
Эта функция работает так же, как Path.visitFileTree. Она предназначена для упрощения случаев, когда FileVisitor создаётся только для немедленного использования при обходе дерева файлов. Замыкающая лямбда builderAction передаётся в fileVisitor для получения обходчика файлов.
Пример:
projectDirectory.visitFileTree {
onPreVisitDirectory { directory, _ ->
if (directory.name == "build") {
directory.deleteRecursively()
FileVisitResult.SKIP_SUBTREE
} else {
FileVisitResult.CONTINUE
}
}
onVisitFile { file, _ ->
if (file.extension == "class") {
file.deleteExisting()
}
FileVisitResult.CONTINUE
}
}
Параметры
Максимальная глубина обхода. По умолчанию ограничение отсутствует.
Указывает, следует ли переходить по символическим ссылкам; по умолчанию false. Если true, обход переходит по символическим ссылкам и посещает содержимое каталогов, на которые они указывают.
Функция, задающая обратные вызовы для обработки событий посещения записей.
См. также
Исключения
Если maxDepth отрицателен.
Если установлен менеджер безопасности и он запрещает доступ к записи, обнаруженной во время обхода.
Если функция обходчика выбрасывает исключение ввода-вывода.
Если предоставленный builderAction неправильно задаёт FileVisitor. Подробности см. в описании fileVisitor.
© 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/visit-file-tree.html