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–2023 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