您可以獲得當前R對話temp目錄。打過幾次電話
tmp_dir <- tempdir()
tmp_dir
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
tempdir()
#> [1] "C:\\Users\\chris\\AppData\\Local\\Temp\\RtmpmusYkh"
臨時目錄包含當前 R對話
list.files(tmp_dir)
#> [1] "file16dc20539ab" "file16dc4ad71f" "file16dc5bab1716"
#> [4] "file16dc74d65663"
會話臨時目錄是在系統的臨時目錄中的臨時文件和目錄時,它不會改變。如果你想刪除系統中所有的temp目錄(不推薦,但因爲它是所有系統,而不僅僅是[R臨時文件),您可以使用此路徑
dirname(tmp_dir)
#> [1] "C:/Users/chris/AppData/Local/Temp"
此路徑也包含在操作系統的環境變量。 (很明顯,我在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()
給出了一個可能的臨時文件的路徑,在 tempdir()
目錄默認情況下,沒有文件擴展名。是 未創建文件和tempfile
調用幾個 次
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"
我們可以寫的東西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
我們可以從文件中讀取現在
readLines(tmp_file)
#> [1] "This is a temp file"
,如果你想如果你想刪除在R會話臨時文件夾中的所有文件刪除這個文件
file.remove(tmp_file)
#> [1] TRUE
file.exists(tmp_file)
#> [1] FALSE
,你可以在文件列表上使用 file.remove
。爲此示例目的,我刪除了以「file」開頭的所有 臨時文件("^file"
是該模式的正則表達式)。有不止我創建 - R會話似乎創建一些臨時文件。
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
我得到一個警告,因爲如果你想刪除一個文件夾,您可以使用unlink
太
# 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
我不能(用R可能都在使用現在)刪除
文件
'list.files(「tmp」,full.names = TRUE)'給出了什麼? –
「list.files」中的目錄位置與您當前的工作目錄相關,因此您需要全部拼寫或確保您位於「tmp」上方的目錄中。也許你還需要在'list.files'調用中'recursive = TRUE'。 –
'tempfile()'爲您提供臨時文件目錄中臨時文件的文件路徑。您的R會話的臨時目錄位置可以通過'tempdir()'找到。臨時目錄可以用'basename(tempdir())' – cderv