Vous pouvez obtenir le répertoire temporaire pour la session de R. Il ne change pas lorsque appelé à plusieurs reprises
tmp_dir <- tempdir()
tmp_dir
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
tempdir()
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
Le répertoire temp contient les fichiers temporaires et le répertoire pour la session en cours de R
list.files(tmp_dir)
#> [1] "file16dc20539ab" "file16dc4ad71f" "file16dc5bab1716"
#> [4] "file16dc74d65663"
Le répertoire temporaire de session est dans le répertoire temporaire du système. Vous pouvez utiliser ce chemin si vous voulez supprimer tous dans le répertoire temporaire du système (non recommandé mais parce qu'il est pour tout le système, et pas seulement les fichiers temporaires R)
dirname(tmp_dir)
#> [1] "C:/Users/chris/AppData/Local/Temp"
Ce chemin est contient également dans un environnement variable pour le système d'exploitation. (De toute évidence, je suis sous windows)
Sys.getenv("TEMP")
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp"
shell("echo %TMP%", intern = T) # command line from R on windows
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp"
tempfile()
donne le chemin d'un fichier temporaire possible, dans le répertoire par défaut tempdir()
, sans extension de fichier. Le fichier est pas créé et tempfile
donne des valeurs différentes appelle plusieurs fois
tmp_file <- tempfile()
tmp_file
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh\\file16dc202636f"
file.exists(tmp_file)
#> [1] FALSE
tempfile() # new file path when called again
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh\\file16dc72594e58"
Nous pouvons écrire quelque chose à tmp_file.
# file is created by writeLines if it does not exist (this is the case here)
writeLines("This is a temp file", con = tmp_file)
file.exists(tmp_file)
#> [1] TRUE
Nous pouvons lire ce fichier
readLines(tmp_file)
#> [1] "This is a temp file"
Maintenant, si vous voulez supprimer ce fichier
file.remove(tmp_file)
#> [1] TRUE
file.exists(tmp_file)
#> [1] FALSE
Si vous voulez supprimer tous les fichiers dans le dossier temp de session R, vous peut utiliser file.remove
sur une liste de fichiers. Pour cet exemple, j'ai supprimé tous les fichiers temporaires commençant par "fichier" ("^file"
est une regex pour ce modèle). Il y a plus que ce que j'ai créé - La session R semble créer un fichier temporaire en cours de route.
files <- list.files(tmp_dir, full.names = T, pattern = "^file")
files
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc1a6a6e15"
#> [2] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc1ff572fc"
#> [3] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc20539ab"
#> [4] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc2e2227b8"
#> [5] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc4ad71f"
#> [6] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc513c35b6"
#> [7] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc570a473f"
#> [8] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc5bab1716"
#> [9] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc6e102bd4"
#> [10] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc6f253f90"
#> [11] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/file16dc74d65663"
file.remove(files)
#> Warning in file.remove(files): impossible d'effacer le fichier 'C:
#> \Users\chris\AppData\Local\Temp\RtmpmusYkh/file16dc1ff572fc', Ã cause de
#> 'Permission denied'
#> [1] TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Je reçois un avertissement parce qu'il ya un fichier que je ne peux pas supprimer (probablement utilisé par R en ce moment)
Si vous souhaitez supprimer un dossier, vous pouvez utiliser unlink
trop
# create a new directory under tempdir
dir.create(dir1 <- file.path(tempdir(), "testdir"))
# create 2 file under this new directory
file.create(file1 <- tempfile(tmpdir = dir1))
#> [1] TRUE
file.create(file2 <- tempfile(tmpdir = dir1))
#> [1] TRUE
file1
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir\\file16dc26b5cb7"
file2
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir\\file16dc2b0816fe"
list.files(dir1, full.names = T)
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir/file16dc26b5cb7"
#> [2] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh/testdir/file16dc2b0816fe"
# we can delete the all directory with `unlink`. It deletes also the directory
unlink(dir1, recursive = T)
dir.exists(dir1)
#> [1] FALSE
Que fait 'list.files (" tmp ", full.names = TRUE)'? –
L'emplacement du répertoire dans 'list.files' est relatif à votre répertoire de travail actuel, vous devez donc l'épeler dans son intégralité ou vous assurer que vous êtes dans le répertoire au-dessus de' tmp'. Peut-être avez-vous aussi besoin de 'recursive = TRUE' dans votre appel' list.files'. –
'tempfile()' vous donne un chemin de fichier pour un fichier temporaire dans votre répertoire de fichiers temporaires. L'emplacement du répertoire temporaire pour votre session R est trouvé avec 'tempdir()'. le répertoire temp peut être calculé avec 'basename (tempdir())' – cderv