有什么方法可以自动删除R命令行少的所有文件或文件夹? 我知道unlink()
或file.remove()
函数,但是对于那些需要定义一个字符向量的人来说,其中的所有文件名都要删除。我正在寻找更多的东西,列出特定路径(例如'C:/ Temp')中的所有文件或文件夹,然后删除具有某个名称(不管其扩展名)的所有文件。自动删除R中的文件/文件夹
任何帮助非常感谢!
有什么方法可以自动删除R命令行少的所有文件或文件夹? 我知道unlink()
或file.remove()
函数,但是对于那些需要定义一个字符向量的人来说,其中的所有文件名都要删除。我正在寻找更多的东西,列出特定路径(例如'C:/ Temp')中的所有文件或文件夹,然后删除具有某个名称(不管其扩展名)的所有文件。自动删除R中的文件/文件夹
任何帮助非常感谢!
也许你只是在寻找组合file.remove
和list.files
?也许是这样的:
do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
我想你可以过滤的文件列表到那些名字匹配使用grep
或grepl
,没有一定的模式?
结合使用dir和grep这并不算太坏。这可能会变成一个函数,它也告诉你哪些文件将被删除,如果它不是你所期望的,就会给你机会中止。
# Which directory?
mydir <- "C:/Test"
# What phrase do you want contained in
# the files to be deleted?
deletephrase <- "deleteme"
# Look at directory
dir(mydir)
# Figure out which files should be deleted
id <- grep(deletephrase, dir(mydir))
# Get the full path of the files to be deleted
todelete <- dir(mydir, full.names = TRUE)[id]
# BALEETED
unlink(todelete)
'dir'采用'pattern'参数,所以你不需要单独使用'grep'。 – 2012-02-15 17:09:31
@RichieCotton好点。我会注意到这一点,因为我没有经常使用dir,grep对我来说似乎是一个自然的解决方案。 – Dason 2012-02-15 19:23:30
dir_to_clean <- tempdir() #or wherever
#create some junk to test it with
file.create(file.path(
dir_to_clean,
paste("test", 1:5, "txt", sep = ".")
))
#Now remove them (no need for messing about with do.call)
file.remove(dir(
dir_to_clean,
pattern = "^test\\.[0-9]\\.txt$",
full.names = TRUE
))
您还可以使用unlink
作为替代file.remove
。
对于已知路径可以将所有文件:
unlink("path/*")
为什么这不是最高投票解决方案?这很奇妙。 – Zediiiii 2016-03-24 18:55:42
有一点需要注意:这种方法可以删除所有内容;文件无法在回收站内恢复。 – 2017-06-30 02:37:04
要删除特定扩展名的文件,这也link可以遵循,
junk <- dir(path="your_path", pattern="your_pattern")
file.remove(junk)
,并可能使用'pattern'参数到'list.files'(或者'dir'是一个同义词)。我认为它们默认会产生一个向量,所以需要在它们周围包装一个“list”调用来处理'do.call'。 – James 2012-02-15 15:56:12
伙计们,当我尝试do.call像你说的我得到这个错误信息:[1]假否假假假假假 警告消息: 1:在函数(...): 不能删除文件' Sim2003.dbf',原因'没有这样的文件或目录' – Francesco 2012-02-15 16:29:42
这使得它似乎没有文件(没有文件)在我指定的目录中...这是有点奇怪,因为文件是有的...和如果我只是使用list.files('C:/ Temp')它给了我所有正确的...我做错了什么? – Francesco 2012-02-15 16:31:30