簡體   English   中英

R中的Dir.create函數刪除計算機上父文件夾中的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM