当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R googledrive drive_cp 复制云端硬盘文件


将现有的云端硬盘文件复制到新的文件 ID 中。

用法

drive_cp(
  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 被解释为文件夹,即使它是字符并且缺少尾部斜杠。默认为“FILE-NAME 的副本”。

...

要传递到 Drive API 的命名参数。具有dynamic dots 语义。您可以通过 ... 指定文件资源的属性来影响目标文件的元数据。阅读关联端点的 Drive API 文档的"Request body" 部分,了解相关参数。

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。

也可以看看

例子

# 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/drive_cp.R

相关用法


注:本文由纯净天空筛选整理自Jennifer Bryan等大神的英文原创作品 Copy a Drive file。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。