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


R googledrive drive_create 創建一個新的空白雲端硬盤文件


創建一個新的空白雲端硬盤文件。請注意,對於這些特殊情況有更好的選擇:

  • 創建文件夾?使用drive_mkdir()

  • 想要將現有的本地內容上傳到新的雲端硬盤文件中嗎?使用drive_upload()

用法

drive_create(
  name,
  path = NULL,
  type = NULL,
  ...,
  overwrite = NA,
  verbose = deprecated()
)

參數

name

新文件的名稱,或者(可選)指定現有父文件夾的路徑以及新文件名。

path

新項目的目標目的地,即文件夾或共享驅動器。可以作為實際路徑(字符)、標有 as_id()dribble 的文件 ID 或 URL 給出。默認為您的 "My Drive" 根文件夾。如果path 是文件夾的快捷方式,它會自動解析為其目標文件夾。

type

特點。通過將 type 分別設置為 documentspreadsheetpresentation 來創建空白的 Google 文檔、工作表或幻燈片。 type 的所有非 NULL 值均使用 drive_mime_type() 進行預處理。

...

要傳遞到 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。

也可以看看

例子

# Create a blank Google Doc named 'WordStar' in
# your 'My Drive' root folder and star it
wordstar <- drive_create("WordStar", type = "document", starred = TRUE)
#> Created Drive file:
#> • WordStar <id: 1fQ7yjQxlYG67jg4TKlTqTLkIFvgFYNIoxLNB6Bs78TI>
#> With MIME type:
#> • application/vnd.google-apps.document

# is 'WordStar' really starred? YES
purrr::pluck(wordstar, "drive_resource", 1, "starred")
#> [1] TRUE

# Create a blank Google Slides presentation in
# the root folder, and set its description
execuvision <- drive_create(
  "ExecuVision",
  type = "presentation",
  description = "deeply nested bullet lists FTW"
)
#> Created Drive file:
#> • ExecuVision <id: 18Wjj-HvgieTymPjDMGWuBzo6rJHL5IQgS_USen0HFAg>
#> With MIME type:
#> • application/vnd.google-apps.presentation

# Did we really set the description? YES
purrr::pluck(execuvision, "drive_resource", 1, "description")
#> [1] "deeply nested bullet lists FTW"

# check out the new presentation
drive_browse(execuvision)

# Create folder 'b4xl' in the root folder,
# then create an empty new Google Sheet in it
b4xl <- drive_mkdir("b4xl")
#> Created Drive file:
#> • b4xl <id: 1f759GhJQNiOV6omkXMgBYyvuGSQEBQag>
#> With MIME type:
#> • application/vnd.google-apps.folder
drive_create("VisiCalc", path = b4xl, type = "spreadsheet")
#> Created Drive file:
#> • VisiCalc <id: 1QFWKFFyuRh00CeyL0plaC9Mw_VL909-k3ANVK6OKLs0>
#> With MIME type:
#> • application/vnd.google-apps.spreadsheet

# Another way to create a Google Sheet in the folder 'b4xl'
drive_create("b4xl/SuperCalc", type = "spreadsheet")
#> Created Drive file:
#> • SuperCalc <id: 1UwJIvgVERrclZGtuo-gtWa5pyc2HsSrpXkmV-Xax-y0>
#> With MIME type:
#> • application/vnd.google-apps.spreadsheet

# Yet another way to create a new file in a folder,
# this time specifying parent `path` as a character
drive_create("Lotus 1-2-3", path = "b4xl", type = "spreadsheet")
#> Created Drive file:
#> • Lotus 1-2-3 <id: 1EJ4kQmwvhVuWTOrY6J3QRyIeNpTBevS8zJIX9HbnIFs>
#> With MIME type:
#> • application/vnd.google-apps.spreadsheet

# Did we really create those Sheets in the intended folder? YES
drive_ls("b4xl")
#> # A dribble: 3 × 3
#>   name        id                                           drive_resource
#>   <chr>       <drv_id>                                     <list>        
#> 1 Lotus 1-2-3 1EJ4kQmwvhVuWTOrY6J3QRyIeNpTBevS8zJIX9HbnIFs <named list>  
#> 2 SuperCalc   1UwJIvgVERrclZGtuo-gtWa5pyc2HsSrpXkmV-Xax-y0 <named list>  
#> 3 VisiCalc    1QFWKFFyuRh00CeyL0plaC9Mw_VL909-k3ANVK6OKLs0 <named list>  

# `overwrite = FALSE` errors if file already exists at target filepath
# THIS WILL ERROR!
drive_create("VisiCalc", path = b4xl, overwrite = FALSE)
#> Error in check_for_overwrite(params[["parents"]], params[["name"]], overwrite): 1 item already exists at the target filepath and `overwrite =
#> FALSE`:
#> • VisiCalc <id: 1QFWKFFyuRh00CeyL0plaC9Mw_VL909-k3ANVK6OKLs0>

# `overwrite = TRUE` moves an existing file to trash, then proceeds
drive_create("VisiCalc", path = b4xl, overwrite = TRUE)
#> File trashed:
#> • VisiCalc <id: 1QFWKFFyuRh00CeyL0plaC9Mw_VL909-k3ANVK6OKLs0>
#> Created Drive file:
#> • VisiCalc <id: 16KzYzBmfnXLoqZ99wv5wn_mYloj8H65F>
#> With MIME type:
#> • application/octet-stream

# Clean up
drive_rm(wordstar, b4xl, execuvision)
#> Files deleted:
#> • WordStar <id: 1fQ7yjQxlYG67jg4TKlTqTLkIFvgFYNIoxLNB6Bs78TI>
#> • b4xl <id: 1f759GhJQNiOV6omkXMgBYyvuGSQEBQag>
#> • ExecuVision <id: 18Wjj-HvgieTymPjDMGWuBzo6rJHL5IQgS_USen0HFAg>
源代碼:R/drive_create.R

相關用法


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