无法使用模式删除目录中的文件

问题描述 投票:0回答:1

有时我必须使用R代码删除特定文件夹中的文件。为了确保我永远不会删除某些东西,我想使用pattern确保只删除所需的文件(所以如果我使用错误的目录,将不会发生任何事情):

file.remove(dir(path="D:/Folder/RestOfMyPath/",pattern="*_pattern.csv"))

我得到:

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[18] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
There were 28 warnings (use warnings() to see them)

我输入warnings()

1: In file.remove(dir(path = "D:/Folder/RestOfMyPath/",  ... :
  cannot remove file 'my_file1_pattern.csv', reason 'No such file or directory'

我可以看到文件(例如my_file1_pattern.csv)。我可以打开它们或手动删除。它们都是由R生成的,但它们是常规的.csv文件。最奇怪的部分是,这有时会起作用但只是感觉像它一样。有时我得到TRUE而不是FALSE和文件被删除(很少)。但我无法弄清楚如何控制它。我使用R studio但在原始R中出现同样的问题。

r
1个回答
2
投票

file.remove正在工作目录中查找您在提供的其他目录中dir'ed的文件。 dir的输出只是文件名。

尝试

mydir <- "D:/Folder/RestOfMyPath/"
delfiles <- dir(path=mydir ,pattern="*_pattern.csv"))
file.remove(file.path(mydir, delfiles))

“TRUE”实例是您在工作目录中吹出(错误的)共享相同名称的文件。

© www.soinside.com 2019 - 2024. All rights reserved.