una - Eliminar archivos/carpetas automáticamente
eliminar carpeta windows (4)
Para todos los archivos en una ruta conocida puede:
unlink("path/*")
¿Hay alguna forma de eliminar automáticamente todos los archivos o carpetas con pocas líneas de comando R? Soy consciente de las funciones unlink()
o file.remove()
, pero para las que necesita definir un vector de caracteres con exactamente todos los nombres de los archivos que desea eliminar. Estoy buscando más algo que enumere todos los archivos o carpetas dentro de una ruta específica (por ejemplo, ''C: / Temp'') y luego elimine todos los archivos con un nombre determinado (independientemente de su extensión).
¡Cualquier ayuda es muy apreciada!
Tal vez solo está buscando una combinación de file.remove
y list.files
? Quizás algo como:
do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
Y supongo que puede filtrar la lista de archivos a aquellos cuyos nombres coincidan con un determinado patrón usando grep
o grepl
, ¿no?
Usando una combinación de dir y grep esto no es tan malo. Probablemente, esto podría convertirse en una función que también le indique qué archivos se eliminarán y le dará la oportunidad de abortar si no es lo que esperaba.
# 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_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
))
También puede usar unlink
como alternativa a file.remove
.