Create Names for Temporary Files

tempfile returns a vector of character strings which can be used as names for temporary files.

tempfile(pattern = "file", tmpdir = tempdir(), fileext = "") tempdir()
a non-empty character vector giving the initial part of the name.
a non-empty character vector giving the directory name
a non-empty character vector giving the file extension

The length of the result is the maximum of the lengths of the three arguments; values of shorter arguments are recycled.

The names are very likely to be unique among calls to tempfile in an R session and across simultaneous R sessions (unless tmpdir is specified). The filenames are guaranteed not to be currently in use.

The file name is made by concatenating the path given by tmpdir, the pattern string, a random string in hex and a suffix of fileext.

By default, tmpdir will be the directory given by tempdir(). This will be a subdirectory of the per-session temporary directory found by the following rule when the R session is started. The environment variables TMPDIR, TMP and TEMP are checked in turn and the first found which points to a writable directory is used: unix if none succeeds ‘/tmp’ is used. The path should not contain spaces. windows if none succeeds the value of R_USER (see Rconsole) is used. If the path to the directory contains a space in any of the components, the path returned will use the shortnames version of the path. Note that setting any of these environment variables in the R session has no effect on tempdir(): the per-session temporary directory is created before the interpreter is started.


For tempfile a character vector giving the names of possible (temporary) files. Note that no files are generated by tempfile.For tempdir, the path of the per-session temporary directory. windowsBoth will use backslash as the path separator. unixThe value will be an absolute path (unless tmpdir is set to a relative path), but it need not be canonical (see normalizePath) and on OS X usually is not.

Note on parallel

R processes forked by functions such as mclapply in package parallel (or \href{https://CRAN.R-project.org/package=#1}{\pkg{#1}}multicoremulticore) share a per-session temporary directory. Further, the ‘guaranteed not to be currently in use’ applies only at the time of asking, and two children could ask simultaneously. This is circumvented by ensuring that tempfile calls in different children try different names.


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

unlink for deleting files.

  • tempfile
  • tempdir
Documentation reproduced from package base, version 3.3.0, License: Part of R 3.3.0

Community examples

Looks like there are no examples yet.