copyRecursively
fun File.copyRecursively(
target: File,
overwrite: Boolean = false,
onError: (File, IOException) -> OnErrorAction = { _, exception -> throw exception }
): Boolean Копирует этот файл со всеми его подкаталогами в указанное место назначения target. Если какие-либо промежуточные каталоги отсутствуют, они будут созданы.
Если путь к этому файлу указывает на единственный файл, он будет скопирован в файл с путем target. Если путь указывает на каталог, его подкаталоги будут скопированы в каталог с путем target.
Если target уже существует, он будет удалён перед копированием, если параметр overwrite это разрешает.
Операция не сохраняет атрибуты скопированных файлов, такие как дата создания/модификации, права доступа и т.д.
Если при копировании возникнут ошибки, дальнейшие действия будут зависеть от результата вызова функции onError(File, IOException), которая будет вызвана с аргументами, определяющими файл, вызвавший ошибку, и саму ошибку. По умолчанию эта функция повторно выбросит исключение.
Исключения, которые могут быть переданы функции onError:
- NoSuchFileException — если была попытка скопировать несуществующий файл
- FileAlreadyExistsException — если возник конфликт
- AccessDeniedException — если попытка открыть каталог не удалась.
- IOException — если при копировании возникли какие-либо проблемы.
Обратите внимание, что в случае неудачи этой функции частичная копия может быть выполнена.
Параметры
overwrite — true разрешено ли перезаписывать существующие файлы и каталоги назначения.
Возвращаемое значение false если копирование было завершено, true в противном случае.
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.io/java.io.-file/copy-recursively.html