Function std.file.tempDir
Returns the path to a directory for temporary files. On POSIX platforms, it searches through the following list of directories and returns the first one which is found to exist:
- The directory given by the
TMPDIR
environment variable. - The directory given by the
TEMP
environment variable. - The directory given by the
TMP
environment variable. /tmp/
/var/tmp/
/usr/tmp/
string tempDir() @trusted;
On all platforms, tempDir
returns the current working directory on failure.
The return value of the function is cached, so the procedures described below will only be performed the first time the function is called. All subsequent runs will return the same string, regardless of whether environment variables and directory structures have changed in the meantime.
The POSIX tempDir
algorithm is inspired by Python's
tempfile
.
Returns
On Windows, this function returns the result of calling the Windows API function
GetTempPath
.
On POSIX platforms, it searches through the following list of directories and returns the first one which is found to exist:
- The directory given by the
TMPDIR
environment variable. - The directory given by the
TEMP
environment variable. - The directory given by the
TMP
environment variable. /tmp
/var/tmp
/usr/tmp
On all platforms, tempDir
returns "."
on failure, representing
the current working directory.
Example
import std .ascii : letters;
import std .conv : to;
import std .path : buildPath;
import std .random : randomSample;
import std .utf : byCodeUnit;
// random id with 20 letters
auto id = letters .byCodeUnit .randomSample(20) .to!string;
auto myFile = tempDir .buildPath(id ~ "my_tmp_file");
scope(exit) myFile .remove;
myFile .write("hello");
writeln(myFile .readText); // "hello"