當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R googledrive drive_mv 移動雲端硬盤文件


將雲端硬盤文件移至其他文件夾、為其指定不同的名稱,或兩者兼而有之。

用法

drive_mv(
  file,
  path = NULL,
  name = NULL,
  overwrite = NA,
  verbose = deprecated()
)

參數

file

識別您的 Google 雲端硬盤上感興趣的文件的內容。可以是名稱或路徑、標有 as_id()dribble 的文件 ID 或 URL。

path

指定 Google 雲端硬盤上文件的目標目的地。可以是實際路徑(字符)、標有 as_id() 的文件 ID 或 dribble

如果 path 是文件夾的快捷方式,它會自動解析為其目標文件夾。

如果 path 作為路徑給出(而不是 dribble 或 id),最好通過包含尾部斜杠來明確指示它是否是文件夾,因為它不能總是從文件夾的上下文中計算出來。稱呼。默認情況下,文件保留在當前文件夾中。

name

字符,如果未指定為 path 的一部分,則為新文件名。這將強製 path 被解釋為文件夾,即使它是字符並且缺少尾部斜杠。默認情況下,文件保留其當前名稱。

overwrite

邏輯,指示是否檢查目標"filepath"處是否存在預先存在的文件。 "filepath" 周圍的引號是指 Drive 不會像典型的文件係統那樣在文件路徑和文件之間強加一對一的關係;在 drive_get() 中了解更多相關信息。

  • NA(默認):隻需執行該操作,即使它會導致多個文件具有相同的文件路徑。

  • TRUE :檢查文件路徑中是否存在預先存在的文件。如果有零個或一個,請將預先存在的文件移至箱子,然後繼續。請注意,新文件不會繼承舊文件的任何屬性,例如共享或發布設置。它將有一個新的文件 ID。如果找到兩個或多個預先存在的文件,則會引發錯誤。

  • FALSE:如果文件路徑中存在任何預先存在的文件,則會出錯。

請注意,基於文件路徑的存在性檢查是昂貴的操作,即它們需要額外的 API 調用。

verbose

[Deprecated]這種對各個 googledrive 函數的邏輯論證已被棄用。要全局禁止 googledrive 消息傳遞,請使用options(googledrive_quiet = TRUE)(默認行為是發出信息性消息)。要以更有限的方式抑製消息傳遞,請使用幫助程序local_drive_quiet()或者with_drive_quiet().

dribble 類的對象,每個文件一行的 tibble。

也可以看看

files.update 端點發出 metadata-only 請求:

例子

# create a file to move
file <- drive_example_remote("chicken.txt") %>%
  drive_cp("chicken-mv.txt")
#> Original file:
#> • chicken.txt <id: 1wOLeWVRkTb6lDmLRiOhg9iKM7DlN762Y>
#> Copied to file:
#> • chicken-mv.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# rename it, but leave in current folder (root folder, in this case)
file <- drive_mv(file, "chicken-mv-renamed.txt")
#> Original file:
#> • chicken-mv.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> Has been renamed:
#> • chicken-mv-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# create a folder to move the file into
folder <- drive_mkdir("mv-folder")
#> Created Drive file:
#> • mv-folder <id: 1SlAEXftUDdEVKnltKW0gXETVmUirTAnA>
#> With MIME type:
#> • application/vnd.google-apps.folder

# move the file and rename it again,
# specify destination as a dribble
file <- drive_mv(file, path = folder, name = "chicken-mv-re-renamed.txt")
#> Original file:
#> • chicken-mv-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> Has been renamed and moved:
#> • mv-folder/chicken-mv-re-renamed.txt
#>   <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# verify renamed file is now in the folder
drive_ls(folder)
#> # A dribble: 1 × 3
#>   name                      id       drive_resource   
#>   <chr>                     <drv_id> <list>           
#> 1 chicken-mv-re-renamed.txt 1_sKTk6… <named list [42]>

# move the file back to root folder
file <- drive_mv(file, "~/")
#> Original file:
#> • chicken-mv-re-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> Has been moved:
#> • ~/chicken-mv-re-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# move it again
# specify destination as path with trailing slash
# to ensure we get a move vs. renaming it to "mv-folder"
file <- drive_mv(file, "mv-folder/")
#> Original file:
#> • chicken-mv-re-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> Has been moved:
#> • mv-folder/chicken-mv-re-renamed.txt
#>   <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# `overwrite = FALSE` errors if something already exists at target filepath
# THIS WILL ERROR!
drive_create("name-squatter-mv", path = "~/")
#> Created Drive file:
#> • name-squatter-mv <id: 1g5GU11l_To47XfVsCrG5myp__NF3NS1F>
#> With MIME type:
#> • application/octet-stream
drive_mv(file, path = "~/", name = "name-squatter-mv", overwrite = FALSE)
#> Error in check_for_overwrite(parent = params[["addParents"]] %||% parent_before,     name = params[["name"]] %||% file$name, overwrite = overwrite): 1 item already exists at the target filepath and `overwrite =
#> FALSE`:
#> • name-squatter-mv <id: 1g5GU11l_To47XfVsCrG5myp__NF3NS1F>

# `overwrite = TRUE` moves the existing item to trash, then proceeds
drive_mv(file, path = "~/", name = "name-squatter-mv", overwrite = TRUE)
#> File trashed:
#> • name-squatter-mv <id: 1g5GU11l_To47XfVsCrG5myp__NF3NS1F>
#> Original file:
#> • chicken-mv-re-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> Has been renamed and moved:
#> • ~/name-squatter-mv <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>

# Clean up
drive_rm(file, folder)
#> Files deleted:
#> • chicken-mv-re-renamed.txt <id: 1_sKTk6rXNrzjGr3bxNk6BfjrVHtdu8Lr>
#> • mv-folder <id: 1SlAEXftUDdEVKnltKW0gXETVmUirTAnA>
源代碼:R/drive_mv.R

相關用法


注:本文由純淨天空篩選整理自Jennifer Bryan等大神的英文原創作品 Move a Drive file。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。