Existe-t-il un moyen de supprimer automatiquement tous les fichiers ou dossiers avec quelques lignes de commande R? Je connais les fonctions unlink()
ou file.remove()
, mais pour celles-ci, vous devez définir un vecteur de caractères avec exactement tous les noms des fichiers que vous souhaitez supprimer. Je cherche plus quelque chose qui répertorie tous les fichiers ou dossiers dans un chemin spécifique (par exemple `` C:/Temp ''), puis supprime tous les fichiers avec un certain nom (quelle que soit son extension).
Toute aide est fortement appréciée!
Peut-être cherchez-vous simplement une combinaison de file.remove
et list.files
? Peut-être quelque chose comme:
do.call(file.remove, list(list.files("C:/Temp", full.names = TRUE)))
Et je suppose que vous pouvez filtrer la liste des fichiers jusqu'à ceux dont les noms correspondent à un certain modèle en utilisant grep
ou grepl
, non?
Pour tous les fichiers d'un chemin connu, vous pouvez:
unlink("path/*")
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
))
Vous pouvez également utiliser unlink
comme alternative à file.remove
.
En utilisant une combinaison de dir et grep, ce n'est pas trop mal. Cela pourrait probablement être transformé en une fonction qui vous indique également quels fichiers doivent être supprimés et vous donne une chance d'interrompre si ce n'est pas ce que vous attendiez.
# 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)