R语言 自动删除文件/文件夹

azpvetkf  于 2023-09-27  发布在  其他
关注(0)|答案(6)|浏览(201)

有没有什么方法可以用很少的R命令行自动删除所有文件或文件夹?我知道unlink()file.remove()函数,但对于这些函数,您需要定义一个字符向量,其中包含您想要删除的所有文件的名称。我正在寻找更多的东西,列出了所有的文件或文件夹在一个特定的路径(例如。'C:/Temp'),然后删除具有特定名称的所有文件(无论其扩展名如何)。
任何帮助是非常感谢!

nom7f22z

nom7f22z1#

删除文件夹中的所有内容,但保持文件夹为空

unlink("path/*", recursive = TRUE, force = TRUE)

删除文件夹内的所有内容,同时也删除文件夹

unlink("path", recursive = TRUE, force = TRUE)

使用force = TRUE,覆盖任何只读/隐藏/等。问题.

rn0zuynd

rn0zuynd2#

使用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)
vvppvyoh

vvppvyoh3#

我很喜欢here::here在文件夹中查找方法(特别是当我在Rmarkdown笔记本的内联评估和编织版本之间切换时)。另一种解决方案:

# Batch remove files
    # Match files in chosen directory with specified regex
    files <- dir(here::here("your_folder"), "your_pattern") 

    # Remove matched files
    unlink(paste0(here::here("your_folder"), files))
h6my8fg2

h6my8fg24#

也许您只是在寻找file.removelist.files的组合?也许是这样的:

do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))

我猜你可以使用grepgrepl过滤文件列表,只找到那些名称与特定模式匹配的文件,不是吗?

1yjd4xko

1yjd4xko5#

对于已知路径中的所有文件,您可以:

unlink("path/*")
vnjpjtjt

vnjpjtjt6#

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的替代方案。

相关问题