將現有的雲端硬盤文件複製到新的文件 ID 中。
參數
- file
-
識別您的 Google 雲端硬盤上感興趣的文件的內容。可以是名稱或路徑、標有
as_id()
或dribble
的文件 ID 或 URL。 - path
-
指定 Google 雲端硬盤上新文件的目標位置。可以是實際路徑(字符)、標有
as_id()
的文件 ID 或dribble
。如果
path
是文件夾的快捷方式,它會自動解析為其目標文件夾。如果
path
作為路徑給出(而不是dribble
或 id),最好通過包含尾部斜杠來明確指示它是否是文件夾,因為它不能總是從文件夾的上下文中計算出來。稱呼。默認情況下,新文件與源文件具有相同的父文件夾。 - name
-
字符,如果未指定為
path
的一部分,則為新文件名。這將強製path
被解釋為文件夾,即使它是字符並且缺少尾部斜杠。默認為“FILE-NAME
的副本”。 - ...
-
要傳遞到 Drive API 的命名參數。具有dynamic dots 語義。您可以通過
...
指定文件資源的屬性來影響目標文件的元數據。閱讀關聯端點的 Drive API 文檔的"Request body" 部分,了解相關參數。 - overwrite
-
邏輯,指示是否檢查目標"filepath"處是否存在預先存在的文件。 "filepath" 周圍的引號是指 Drive 不會像典型的文件係統那樣在文件路徑和文件之間強加一對一的關係;在
drive_get()
中了解更多相關信息。-
NA
(默認):隻需執行該操作,即使它會導致多個文件具有相同的文件路徑。 -
TRUE
:檢查文件路徑中是否存在預先存在的文件。如果有零個或一個,請將預先存在的文件移至箱子,然後繼續。請注意,新文件不會繼承舊文件的任何屬性,例如共享或發布設置。它將有一個新的文件 ID。如果找到兩個或多個預先存在的文件,則會引發錯誤。 -
FALSE
:如果文件路徑中存在任何預先存在的文件,則會出錯。
請注意,基於文件路徑的存在性檢查是昂貴的操作,即它們需要額外的 API 調用。
-
- verbose
-
這種對各個 googledrive 函數的邏輯論證已被棄用。要全局禁止 googledrive 消息傳遞,請使用
options(googledrive_quiet = TRUE)
(默認行為是發出信息性消息)。要以更有限的方式抑製消息傳遞,請使用幫助程序local_drive_quiet()
或者with_drive_quiet()
.
值
dribble
類的對象,每個文件一行的 tibble。
例子
# Target one of the official example files
(src_file <- drive_example_remote("chicken.txt"))
#> # A dribble: 1 × 3
#> name id drive_resource
#> <chr> <drv_id> <list>
#> 1 chicken.txt 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y <named list [38]>
# Make a "Copy of" copy in your My Drive
cp1 <- drive_cp(src_file)
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>
# Make an explicitly named copy, in a different folder, and star it.
# The starring is an example of providing metadata via `...`.
# `starred` is not an actual argument to `drive_cp()`,
# it just gets passed through to the API.
folder <- drive_mkdir("drive-cp-folder")
#> Created Drive file:
#> • drive-cp-folder <id: 13e7tYB6Sxqt-BBLwNH7q97gLZAVNaWLN>
#> With MIME type:
#> • application/vnd.google-apps.folder
cp2 <- drive_cp(
src_file,
path = folder,
name = "chicken-cp.txt",
starred = TRUE
)
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • drive-cp-folder/chicken-cp.txt <id: 1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3>
drive_reveal(cp2, "starred")
#> # A dribble: 1 × 4
#> name starred id drive_resource
#> <chr> <lgl> <drv_id> <list>
#> 1 chicken-cp.txt TRUE 1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3 <named list>
# `overwrite = FALSE` errors if file already exists at target filepath
# THIS WILL ERROR!
# drive_cp(src_file, name = "Copy of chicken.txt", overwrite = FALSE)
# `overwrite = TRUE` moves an existing file to trash, then proceeds
cp3 <- drive_cp(src_file, name = "Copy of chicken.txt", overwrite = TRUE)
#> File trashed:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • Copy of chicken.txt <id: 11QbIifQr9rpUFA8hPlB8jIQoECmRawVA>
# Delete all of our copies and the new folder!
drive_rm(cp1, cp2, cp3, folder)
#> Files deleted:
#> • Copy of chicken.txt <id: 13C0IFBlHKUr-Ch07Vxwr9RzKnDfjcd4X>
#> • chicken-cp.txt <id: 1f1emvuybwQhIBgfMEdvbNWsjvOVzpdN3>
#> • Copy of chicken.txt <id: 11QbIifQr9rpUFA8hPlB8jIQoECmRawVA>
#> • drive-cp-folder <id: 13e7tYB6Sxqt-BBLwNH7q97gLZAVNaWLN>
# Target an official example file that's a csv file
(csv_file <- drive_example_remote("chicken.csv"))
#> # A dribble: 1 × 3
#> name id drive_resource
#> <chr> <drv_id> <list>
#> 1 chicken.csv 1VOh6wWbRfuQLxbLg87o58vxJt95SIiZ7 <named list [37]>
# copy AND AT THE SAME TIME convert it to a Google Sheet
chicken_sheet <- drive_cp(
csv_file,
name = "chicken-sheet-copy",
mime_type = drive_mime_type("spreadsheet")
)
#> Original file:
#> • chicken.csv <id: 1VOh6wWbRfuQLxbLg87o58vxJt95SIiZ7>
#> Copied to file:
#> • chicken-sheet-copy <id: 1-CFVX3pNimDq1Wsu4tLZfaEQXFQZATbM9rnE9oSCWQs>
# is it really a Google Sheet?
drive_reveal(chicken_sheet, "mime_type")$mime_type
#> [1] "application/vnd.google-apps.spreadsheet"
# go see the new Sheet in the browser
# drive_browse(chicken_sheet)
# Clean up
drive_rm(chicken_sheet)
#> File deleted:
#> • chicken-sheet-copy <id: 1-CFVX3pNimDq1Wsu4tLZfaEQXFQZATbM9rnE9oSCWQs>
相關用法
- R googledrive drive_create 創建一個新的空白雲端硬盤文件
- R googledrive drive_mime_type 查找 MIME 類型
- R googledrive drive_reveal 添加新的雲端硬盤文件信息列
- R googledrive drive_rm 從雲端硬盤刪除文件
- R googledrive drive_id 驅動器 ID 類
- R googledrive drive_auth_configure 編輯和查看身份驗證配置
- R googledrive drive_upload 上傳到新的雲端硬盤文件
- R googledrive drive_mv 移動雲端硬盤文件
- R googledrive drive_put 將新媒體放入雲端硬盤文件中
- R googledrive drive_has_token 手上有令牌嗎?
- R googledrive drive_user 獲取當前用戶的信息
- R googledrive drive_rename 重命名雲端硬盤文件
- R googledrive drive_trash 將雲端硬盤文件移入或移出回收站
- R googledrive drive_share 共享雲端硬盤文件
- R googledrive drive_about 獲取有關雲端硬盤函數的信息
- R googledrive drive_update 更新現有雲端硬盤文件
- R googledrive drive_mkdir 創建雲端硬盤文件夾
- R googledrive drive_fields 請求部分資源
- R googledrive drive_endpoints 列出驅動器端點
- R googledrive drive_deauth 暫停授權
- R googledrive drive_link 檢索雲端硬盤文件鏈接
- R googledrive drive_find 在 Google 雲端硬盤上查找文件
- R googledrive drive_examples 示例文件
- R googledrive drive_browse 在瀏覽器中訪問雲端硬盤文件
- R googledrive drive_token 生成配置的令牌
注:本文由純淨天空篩選整理自Jennifer Bryan等大神的英文原創作品 Copy a Drive file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。