Path.copyTo所在位置是kotlin.io.path / java.nio.file.Path.copyTo,其相关用法介绍如下。

用法一

fun Path.copyTo(
    target: Path, 
    overwrite: Boolean = false
): Path

将此路径所在的文件或目录复制到给定的target 路径。

File.copyTo 不同,如果在前往 target 的途中缺少某些目录,则不会自动创建它们。您可以使用以下方法来确保创建所需的中间目录:

sourcePath.copyTo(destinationPath.apply { parent?.createDirectories() })

如果 target 路径已存在,则此函数将失败,除非 overwrite 参数设置为 true

overwritetruetarget为目录时,只有为空时才被替换。

如果此路径是目录,则复制它时不包含其内容,即创建一个空的 target 目录。如果要复制包含其内容的目录,请使用 copyRecursively

该操作不保留复制的文件属性,例如创建/修改日期、权限等。

参数

overwrite-true如果允许目标覆盖。

异常

NoSuchFileException- 如果源路径不存在。

FileAlreadyExistsException- 如果目标路径已经存在并且覆盖参数设置为false.

DirectoryNotEmptyException- 如果目标路径指向现有目录并且覆盖参数是true,当被替换的目录不为空时。

IOException- 如果复制时出现任何错误。

返回 target 路径。

也可以看看

Files.copy

用法二

fun Path.copyTo(
    target: Path, 
    vararg options: CopyOption
): Path

将此路径所在的文件或目录复制到给定的target 路径。

File.copyTo 不同,如果在前往 target 的途中缺少某些目录,则不会自动创建它们。您可以使用以下方法来确保创建所需的中间目录:

sourcePath.copyTo(destinationPath.apply { parent?.createDirectories() })

如果target 路径已经存在,除非使用REPLACE_EXISTING 选项,否则此函数将失败。

当使用REPLACE_EXISTINGtarget为目录时,只有为空时才会被替换。

如果此路径是目录,则复制 without 其内容,即创建一个空的 target 目录。如果要复制包含其内容的目录,请使用 copyRecursively

除非使用COPY_ATTRIBUTES,否则该操作不会保留复制的文件属性,例如创建/修改日期、权限等。

参数

options- 控制路径复制方式的选项。

异常

NoSuchFileException- 如果源路径不存在。

FileAlreadyExistsException- 如果目标路径已经存在并且REPLACE_EXISTING未使用。

DirectoryNotEmptyException- 如果目标路径指向现有目录并且REPLACE_EXISTING被替换的目录不为空时使用。

IOException- 如果复制时出现任何错误。

返回 target 路径。

也可以看看

Files.copy