Library: Foundation
Package: Filesystem
Header: Poco/File.h
The File class provides methods for working with a file.
Direct Base Classes: FileImpl
All Base Classes: FileImpl
Known Derived Classes: TemporaryFile
Member Functions: canExecute, canRead, canWrite, copyDirectory, copyTo, createDirectories, createDirectory, createFile, created, exists, getLastModified, getSize, handleLastError, isDevice, isDirectory, isFile, isHidden, isLink, list, moveTo, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, path, remove, renameTo, setExecutable, setLastModified, setReadOnly, setSize, setWriteable, swap
typedef FileSizeImpl FileSize;
File();
Creates the file.
File(
const std::string & path
);
Creates the file.
File(
const char * path
);
Creates the file.
Creates the file.
Copy constructor.
virtual ~File();
Destroys the file.
bool canExecute() const;
Returns true if and only if the file is executable.
On Windows and OpenVMS, the file must have the extension ".EXE" to be executable. On Unix platforms, the executable permission bit must be set.
bool canRead() const;
Returns true if and only if the file is readable.
bool canWrite() const;
Returns true if and only if the file is writeable.
void copyTo(
const std::string & path
) const;
Copies the file (or directory) to the given path. The target path can be a directory.
A directory is copied recursively.
void createDirectories();
Creates a directory (and all parent directories if necessary).
bool createDirectory();
Creates a directory. Returns true if the directory has been created and false if it already exists. Throws an exception if an error occurs.
bool createFile();
Creates a new, empty file in an atomic operation. Returns true if the file has been created and false if the file already exists. Throws an exception if an error occurs.
Timestamp created() const;
Returns the creation date of the file.
Not all platforms or filesystems (e.g. Linux and most Unix platforms with the exception of FreeBSD and Mac OS X) maintain the creation date of a file. On such platforms, created() returns the time of the last inode modification.
bool exists() const;
Returns true if and only if the file exists.
Timestamp getLastModified() const;
Returns the modification date of the file.
FileSize getSize() const;
Returns the size of the file in bytes.
static void handleLastError(
const std::string & path
);
For internal use only. Throws an appropriate exception for the last file-related error.
bool isDevice() const;
Returns true if and only if the file is a device.
bool isDirectory() const;
Returns true if and only if the file is a directory.
bool isFile() const;
Returns true if and only if the file is a regular file.
bool isHidden() const;
Returns true if the file is hidden.
On Windows platforms, the file's hidden attribute is set for this to be true.
On Unix platforms, the file name must begin with a period for this to be true.
bool isLink() const;
Returns true if and only if the file is a symbolic link.
void list(
std::vector < std::string > & files
) const;
Fills the vector with the names of all files in the directory.
void list(
std::vector < File > & files
) const;
Fills the vector with the names of all files in the directory.
void moveTo(
const std::string & path
);
Copies the file (or directory) to the given path and removes the original file. The target path can be a directory.
bool operator != (
const File & file
) const;
bool operator < (
const File & file
) const;
bool operator <= (
const File & file
) const;
File & operator = (
const File & file
);
Assignment operator.
File & operator = (
const std::string & path
);
Assignment operator.
File & operator = (
const char * path
);
Assignment operator.
File & operator = (
const Path & path
);
Assignment operator.
bool operator == (
const File & file
) const;
bool operator > (
const File & file
) const;
bool operator >= (
const File & file
) const;
const std::string & path() const;
Returns the path.
void remove(
bool recursive = false
);
Deletes the file. If recursive is true and the file is a directory, recursively deletes all files in the directory.
void renameTo(
const std::string & path
);
Renames the file to the new name.
File & setExecutable(
bool flag = true
);
Makes the file executable (if flag is true), or non-executable (if flag is false) by setting the file's permission bits accordingly.
Does nothing on Windows and OpenVMS.
File & setLastModified(
const Timestamp & ts
);
Sets the modification date of the file.
File & setReadOnly(
bool flag = true
);
Makes the file non-writeable (if flag is true), or writeable (if flag is false) by setting the file's flags in the filesystem accordingly.
File & setSize(
FileSize size
);
Sets the size of the file in bytes. Can be used to truncate a file.
File & setWriteable(
bool flag = true
);
Makes the file writeable (if flag is true), or non-writeable (if flag is false) by setting the file's flags in the filesystem accordingly.
void swap(
File & file
);
Swaps the file with another one.
void copyDirectory(
const std::string & path
) const;
Copies a directory. Used internally by copyTo().