Автоматическое удаление файлов/папок в R
Есть ли способ автоматически удалить все файлы или папки с несколькими командами R?
Я знаю функции unlink()
или file.remove()
, но для тех, кому нужно определить вектор символов с точно всеми именами файлов, которые вы хотите удалить. Я больше ищу что-то, в котором перечислены все файлы или папки в определенном пути (например, "C:/Temp" ), а затем удаляются все файлы с определенным именем (независимо от его расширения).
Любая помощь очень ценится!
Ответы
Ответ 1
Возможно, вы просто ищете комбинацию file.remove
и list.files
? Может быть, что-то вроде:
do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
И я думаю, вы можете отфильтровать список файлов до тех, чьи имена соответствуют определенному шаблону, используя grep
или grepl
, no?
Ответ 2
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
.
Ответ 3
Для всех файлов в известном пути вы можете:
unlink("path/*")
Ответ 4
Использование комбинации 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)
Ответ 5
Чтобы удалить файлы определенного расширения, можно также следить за ,
junk <- dir(path="your_path", pattern="your_pattern")
file.remove(junk)