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