Функция copyRecursively
Функция copyRecursively выполняет рекурсивное копирование
файлов и директорий из исходного пути в целевой путь.
В первый параметр мы передаем целевой путь для копирования,
во второй параметр мы можем передать флаг перезаписи существующих файлов,
в третий параметр мы можем передать функцию-обработчик для обработки ошибок копирования.
Функция возвращает true при успешном выполнении и false при ошибке.
Импорт
import java.io.File
Синтаксис
fun File.copyRecursively(
target: File,
overwrite: Boolean = false,
onError: (File, IOException) -> OnErrorAction = { _, exception -> throw exception }
): Boolean
Пример
Скопируем директорию source_dir
в директорию target_dir:
val sourceDir = File("source_dir")
val targetDir = File("target_dir")
val res: Boolean = sourceDir.copyRecursively(targetDir)
println(res)
Результат выполнения кода:
Boolean true
Пример
Скопируем директорию с перезаписью существующих файлов:
val sourceDir = File("source_dir")
val targetDir = File("target_dir")
val res: Boolean = sourceDir.copyRecursively(targetDir, overwrite = true)
println(res)
Результат выполнения кода:
Boolean true
Пример
Скопируем директорию с обработкой ошибок:
val sourceDir = File("source_dir")
val targetDir = File("target_dir")
val res: Boolean = sourceDir.copyRecursively(targetDir, onError = { file, exception ->
println("Error copying file: ${file.name}, message: ${exception.message}")
OnErrorAction.SKIP
})
println(res)
Результат выполнения кода:
Error copying file: protected_file.txt, message: Access denied
Boolean true
Пример
Скопируем отдельный файл:
val sourceFile = File("document.txt")
val targetFile = File("backup/document.txt")
val res: Boolean = sourceFile.copyRecursively(targetFile)
println(res)
Результат выполнения кода:
Boolean true
Смотрите также
-
функцию
copyTo,
которая копирует одиночный файл -
функцию
deleteRecursively,
которая рекурсивно удаляет файлы и директории -
функцию
listFiles,
которая возвращает список файлов в директории -
функцию
walk,
которая обходит файловое дерево