class TemporaryFile

Library: Foundation
Package: Filesystem
Header: Poco/TemporaryFile.h


The TemporaryFile class helps with the handling of temporary files. A unique name for the temporary file is automatically chosen and the file is placed in the directory reserved for temporary files (see Path::temp()). Obtain the path by calling the path() method (inherited from File).

The TemporaryFile class does not actually create the file - this is up to the application. The class does, however, delete the temporary file - either in the destructor, or immediately before the application terminates.

Note: Due to the way the temporary file names are generated, collisions may be possible after 400-500 Million file names generated by a single process.


Direct Base Classes: File

All Base Classes: FileImpl, File

Member Summary

Member Functions: keep, keepUntilExit, registerForDeletion, tempName

Inherited Functions: canExecute, canRead, canWrite, copyDirectory, copyTo, createDirectories, createDirectory, createFile, created, exists, freeSpace, getLastModified, getSize, handleLastError, isDevice, isDirectory, isFile, isHidden, isLink, linkTo, list, moveTo, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, path, remove, renameTo, setExecutable, setLastModified, setReadOnly, setSize, setWriteable, swap, totalSpace, usableSpace




Creates the TemporaryFile.


    const std::string & tempDir

Creates the TemporaryFile using the given directory.


~TemporaryFile virtual


Destroys the TemporaryFile and deletes the corresponding file on disk unless keep() or keepUntilExit() has been called.

Member Functions


void keep();

Disables automatic deletion of the file in the destructor.


void keepUntilExit();

Disables automatic deletion of the file in the destructor, but registers the file for deletion at process termination.

registerForDeletion static

static void registerForDeletion(
    const std::string & path

Registers the given file for deletion at process termination.

tempName static

static std::string tempName(
    const std::string & tempDir = ""

Returns a unique path name for a temporary file in the system's scratch directory (see Path::temp()) if tempDir is empty or in the directory specified in tempDir otherwise.