为临时文件创建名称
描述
临时文件
返回一个字符串向量,可以用作临时文件的名称。
用法
临时文件(pattern=“file”,tmpdir=tempdir(),fileext=“”)tempdir(检查=假)
论据
图案 |
给出初始部分的非空字符向量的名称。
|
tmpdir(tmpdir) |
给出目录名的非空字符向量
|
文件文本 |
提供文件扩展名的非空字符向量
|
检查 |
符合逻辑的 指示是否tmpdir() 如果不再有效,则应检查并重新创建。
|
细节
结果的长度是三个长度中的最大值论据;较短参数的值将被回收。
在调用中,名称很可能是唯一的临时文件
在中R(右)会话和跨并发R(右)会话(除非tmpdir(tmpdir)
)。文件名保证不会当前正在使用。
文件名是通过连接给定的路径tmpdir(tmpdir)
,的图案
字符串,十六进制的随机字符串后缀为文件文本
.
默认情况下,tmpdir公司
将是给定的目录临时目录()
。这将是每个会话的子目录当R(右)会话为起动。环境变量TMPDIR公司,TMP公司和临时雇员依次进行检查,发现第一个指向使用可写目录:如果没有成功'/临时管理计划使用了“”。路径不应包含空格。请注意,在R(右)阶段对没有影响临时目录()
:per-session临时目录在启动解释器之前创建。
价值
对于临时文件
给出可能名称的字符向量(临时)文件。请注意,不会生成任何文件临时文件
.
对于临时目录
,per-session临时目录的路径。
在Windows上,两者都将使用反斜杠作为路径分隔符。
在类Unix上,该值将是绝对路径(除非tmpdir(tmpdir)
设置为相对路径),但不需要是规范的(参见规范化路径
)而在macOS上通常不是这样。
关于并行使用的注释
R(右)由以下函数派生的进程麦克拉普利
和makeForkCluster公司
包装内平行共享一个per-session临时目录。此外,“保证不“当前正在使用”仅适用于询问时孩子们可以同时提问。通过确保那个临时文件
在不同的孩子中调用不同的名称。
来源
的最后一个组件临时目录()
由POSIX系统创建呼叫mkdtemp公司
,或者如果不可用(例如,在Windows)从GNU源代码派生的版本格利布
.
它将采用“报告XXXXXX'其中最后6个字符以特定于平台的方式进行替换。POSIX只要求替换为ASCII,它允许.
(因此该值可能会出现具有文件扩展名)和regexp元字符,例如+
。最常见的替换项来自regexp图案[A-Za-z0-9]
,但是.
有已被发现。
工具书类
Becker,R.A.、Chambers,J.M.和Wilks,A.R.(1988)新S语言.沃兹沃思和布鲁克斯/科尔。
另请参见
取消链接
用于删除文件。
示例
tempfile(c(“ab”,“abc”))#提供文件名,其中包含空格!临时文件(“plot”,fileext=c(“.ps”,“.pdf”)tempdir()#适用于所有平台,结果依赖于平台##显示“检查”在某些平台上的工作方式:if(exists(“我很勇敢”)&&`我很勇敢`&&相同(.Platform$OS.type,“unix”)&&grepl(“^/tmp/”,tempdir())){cat(“当前tempdir():”,tempdir(),“\n”)cat(“删除它:”,file.remove(tempdir()),“;dir.exists(tempdir()):”,dir.exacts(temp目录()),“\n”)cat(“现在是tempdir(check=TRUE):”,tempdir[检查=TRUE],“\n”)}