# Poco

# class TemporaryFile

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

## Description

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.

## Inheritance

Direct Base Classes: File

All Base Classes: File, FileImpl

## Member Summary

Member Functions: keep, keepUntilExit, registerForDeletion, tempName

Inherited Functions: absolutePath, canExecute, canExecuteImpl, canRead, canReadImpl, canWrite, canWriteImpl, convertPath, copyDirectory, copyTo, copyToImpl, createDirectories, createDirectory, createDirectoryImpl, createFile, createFileImpl, created, createdImpl, exists, existsAnywhere, existsImpl, freeSpace, freeSpaceImpl, getExecutablePath, getExecutablePathImpl, getLastModified, getLastModifiedImpl, getPathImpl, getSize, getSizeImpl, handleLastError, handleLastErrorImpl, isDevice, isDeviceImpl, isDirectory, isDirectoryImpl, isFile, isFileImpl, isHidden, isHiddenImpl, isLink, isLinkImpl, linkTo, linkToImpl, list, moveTo, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, path, remove, removeImpl, renameTo, renameToImpl, setExecutable, setExecutableImpl, setLastModified, setLastModifiedImpl, setPathImpl, setReadOnly, setSize, setSizeImpl, setWriteable, setWriteableImpl, swap, swapImpl, totalSpace, totalSpaceImpl, usableSpace, usableSpaceImpl

## Constructors

### TemporaryFile

TemporaryFile();

Creates the TemporaryFile.

### TemporaryFile

TemporaryFile(
const std::string & tempDir
);

Creates the TemporaryFile using the given directory.

## Destructor

### ~TemporaryFile

~TemporaryFile() override;

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

## Member Functions

### keep

void keep();

Disables automatic deletion of the file in the destructor.

### keepUntilExit

void keepUntilExit();

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

### registerForDeletion

static void registerForDeletion(
const std::string & path
);

Registers the given file for deletion at process termination.

### tempName

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.