[英]Dir.create function in R erases files in parent folders on the computer
出於工作目的,我制作了一個新功能,該功能會自動測試文件夾(名稱由文件路徑指定)是否存在:
make.dir <- function(fp) {
# If not existing, create a new one
if(!file.exists(fp)) {
make.dir(dirname(fp))
dir.create(fp, recursive = FALSE, showWarnings = FALSE)
} else {
# If existed, delete and replace with a new one
unlink(fp, recursive = FALSE)
dir.create(fp)
}
}
一個例子是:
make.dir("D:/Work/R/Sample")
如果該文件夾不存在,則應該在父文件夾“ R”中創建一個名為“ Sample”的文件夾,並使用新文件夾替換該文件夾(如果存在)。
但是,我只是在后一種情況下嘗試過此操作,即替換現有文件夾。 昨天,我使用此代碼嘗試創建一個“ Sample”文件夾中未預先存在的文件夾(例如“ Plots”)。 它沒有創建名為“ Plots”的文件夾,而是檢測到存在父文件夾“ Sample”,並開始刪除該文件夾中包含的每個文件。 然后,它繼續刪除上層文件夾“ R”中的所有文件。 我必須先取消代碼,然后才能刪除(D :)驅動器。
它適合替換現有文件夾,但不適用於創建新文件夾。 任何人都對如何修復該功能或制作新功能有任何想法?
謝謝
正如@ytk在上面的注釋中指出的那樣,在第一個if
語句中對make.dir
的調用使函數變得瘋狂了。 刪除即可解決問題。 謝謝,ytk
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.