您可以获取当前R会话的临时目录。多次调用时不会更改。
tmp_dir <- tempdir()
tmp_dir
tempdir()
临时目录包含当前R会话的临时文件和目录
list.files(tmp_dir)
会话临时目录位于系统的临时目录中。如果您想删除系统临时目录中的所有内容(不建议这样做,因为它是针对整个系统而不仅仅是R临时文件的),可以使用此路径。
dirname(tmp_dir)
这个路径也包含在操作系统的环境变量中。(显然,我是在Windows上)
Sys.getenv("TEMP")
shell("echo %TMP%", intern = T)
tempfile()
函数返回一个可能的临时文件路径,默认情况下在 tempdir()
目录中,没有文件扩展名。该文件不会被创建,每次调用 tempfile
时都会返回不同的值。
tmp_file <- tempfile()
tmp_file
file.exists(tmp_file)
tempfile()
我们可以将一些内容写入到tmp_file中。
writeLines("This is a temp file", con = tmp_file)
file.exists(tmp_file)
我们可以从这个文件中读取数据。
readLines(tmp_file)
现在如果您想删除这个文件。
file.remove(tmp_file)
file.exists(tmp_file)
如果您想删除R会话临时文件夹中的所有文件,可以在文件列表上使用
file.remove
。为此示例目的,我删除了以“file”开头的所有临时文件(
"^file"
是该模式的正则表达式)。比我创建的还要多- R会话似乎会按照某种方式创建一些临时文件。
files <- list.files(tmp_dir, full.names = T, pattern = "^file")
files
file.remove(files)
我收到了一个警告,因为有一个文件无法删除(可能正在被R使用)
如果你想要删除一个文件夹,你也可以使用unlink
。
dir.create(dir1 <- file.path(tempdir(), "testdir"))
file.create(file1 <- tempfile(tmpdir = dir1))
file.create(file2 <- tempfile(tmpdir = dir1))
file1
file2
list.files(dir1, full.names = T)
unlink(dir1, recursive = T)
dir.exists(dir1)
list.files("tmp", full.names = TRUE)
是什么意思? - Remko Duursmalist.files
中的目录位置是相对于您当前的工作目录,因此您需要完整拼写出它,或者确保您在tmp
目录的上一级目录中。也许您在list.files
调用中还需要使用recursive=TRUE
。 - Andrew Gustartempfile()
gives you a file path for a temporary file in your temp file directory. The temp directory location for your R session is found withtempdir()
. the temp directory can be compute withbasename(tempdir())
- cdervdirname(tempdir())
而不是basename
。抱歉。 - cderv