R: Create Names for Temporary Files

tempfile {base} | R Documentation

## Create Names for Temporary Files

### Description

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

### Usage

    tempfile(pattern = "file", tmpdir = tempdir(), fileext = "")
    tempdir()

### Arguments

`pattern` | a non-empty character vector giving the initial part of the name.
`tmpdir` | a non-empty character vector giving the directory name
`fileext` | a non-empty character vector giving the file extension

### Details

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: if none succeeds ‘/tmp’ is used. The path should not contain spaces. 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.

### Value

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.

### Note on parallel

R processes forked by functions such as `mclapply` in package parallel (or multicore) 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.

### References

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

### See Also

`unlink` for deleting files.

### Examples

    tempfile(c("ab", "a b c"))   # give file name with spaces in!

    tempfile("plot", fileext = c(".ps", ".pdf"))

    tempdir() # works on all platforms with a platform-dependent result

[Package base version 3.1.2 Index]