Функция copyRecursively

Функция copyRecursively выполняет рекурсивное копирование файлов и директорий из исходного пути в целевой путь. В первый параметр мы передаем целевой путь для копирования, во второй параметр мы можем передать флаг перезаписи существующих файлов, в третий параметр мы можем передать функцию-обработчик для обработки ошибок копирования. Функция возвращает true при успешном выполнении и false при ошибке.

Импорт

kotlinimport java.io.File

Синтаксис

kotlinfun File.copyRecursively(
  target: File,
  overwrite: Boolean = false,
  onError: (File, IOException) -> OnErrorAction = { _, exception -> throw exception }
): Boolean

Пример

Скопируем директорию source_dir в директорию target_dir:

kotlinval sourceDir = File("source_dir")
val targetDir = File("target_dir")
val res: Boolean = sourceDir.copyRecursively(targetDir)
println(res)

Результат выполнения кода:

kotlinBoolean true

Пример

Скопируем директорию с перезаписью существующих файлов:

kotlinval sourceDir = File("source_dir")
val targetDir = File("target_dir")
val res: Boolean = sourceDir.copyRecursively(targetDir, overwrite = true)
println(res)

Результат выполнения кода:

kotlinBoolean true

Пример

Скопируем директорию с обработкой ошибок:

kotlinval 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)

Результат выполнения кода:

kotlinError copying file: protected_file.txt, message: Access denied
Boolean true

Пример

Скопируем отдельный файл:

kotlinval sourceFile = File("document.txt")
val targetFile = File("backup/document.txt")
val res: Boolean = sourceFile.copyRecursively(targetFile)
println(res)

Результат выполнения кода:

kotlinBoolean true

Смотрите также

  • функцию copyTo,
    которая копирует одиночный файл
  • функцию deleteRecursively,
    которая рекурсивно удаляет файлы и директории
  • функцию listFiles,
    которая возвращает список файлов в директории
  • функцию walk,
    которая обходит файловое дерево