QFileDevice ClassThe QFileDevice class provides an interface for reading from and writing to open files. More... #include <QFileDevice> Inherits: QIODevice. Inherited by: QFile. Note: All functions in this class are reentrant. This class was introduced in Qt 5.0. Public Types
Public Functions
Reimplemented Public Functions
Signals
Protected Functions
Reimplemented Protected Functions
Additional Inherited Members
Detailed DescriptionThe QFileDevice class provides an interface for reading from and writing to open files. QFileDevice is the base class for I/O devices that can read and write text and binary files and resources. QFile offers the main functionality, QFileDevice serves as a base class for sharing functionality with other file devices such as QTemporaryFile, by providing all the operations that can be done on files that have been opened by QFile or QTemporaryFile. See also QFile and QTemporaryFile. Member Type Documentation
|
Constant | Value | Description |
---|---|---|
QFileDevice::NoError | 0 | No error occurred. |
QFileDevice::ReadError | 1 | An error occurred when reading from the file. |
QFileDevice::WriteError | 2 | An error occurred when writing to the file. |
QFileDevice::FatalError | 3 | A fatal error occurred. |
QFileDevice::ResourceError | 4 | |
QFileDevice::OpenError | 5 | The file could not be opened. |
QFileDevice::AbortError | 6 | The operation was aborted. |
QFileDevice::TimeOutError | 7 | A timeout occurred. |
QFileDevice::UnspecifiedError | 8 | An unspecified error occurred. |
QFileDevice::RemoveError | 9 | The file could not be removed. |
QFileDevice::RenameError | 10 | The file could not be renamed. |
QFileDevice::PositionError | 11 | The position in the file could not be changed. |
QFileDevice::ResizeError | 12 | The file could not be resized. |
QFileDevice::PermissionsError | 13 | The file could not be accessed. |
QFileDevice::CopyError | 14 | The file could not be copied. |
This enum is used when opening a file to specify additional options which only apply to files and not to a generic QIODevice.
Constant | Value | Description |
---|---|---|
QFileDevice::AutoCloseHandle | 0x0001 | The file handle passed into open() should be closed by close(), the default behavior is that close just flushes the file and the application is responsible for closing the file handle. When opening a file by name, this flag is ignored as Qt always owns the file handle and must close it. |
QFileDevice::DontCloseHandle | 0 | If not explicitly closed, the underlying file handle is left open when the QFile object is destroyed. |
The FileHandleFlags type is a typedef for QFlags<FileHandleFlag>. It stores an OR combination of FileHandleFlag values.
This enum describes special options that may be used by the map() function.
Constant | Value | Description |
---|---|---|
QFileDevice::NoOptions | 0 | No options. |
This enum was introduced or modified in Qt 4.4.
This enum is used by the permission() function to report the permissions and ownership of a file. The values may be OR-ed together to test multiple permissions and ownership values.
Constant | Value | Description |
---|---|---|
QFileDevice::ReadOwner | 0x4000 | The file is readable by the owner of the file. |
QFileDevice::WriteOwner | 0x2000 | The file is writable by the owner of the file. |
QFileDevice::ExeOwner | 0x1000 | The file is executable by the owner of the file. |
QFileDevice::ReadUser | 0x0400 | The file is readable by the user. |
QFileDevice::WriteUser | 0x0200 | The file is writable by the user. |
QFileDevice::ExeUser | 0x0100 | The file is executable by the user. |
QFileDevice::ReadGroup | 0x0040 | The file is readable by the group. |
QFileDevice::WriteGroup | 0x0020 | The file is writable by the group. |
QFileDevice::ExeGroup | 0x0010 | The file is executable by the group. |
QFileDevice::ReadOther | 0x0004 | The file is readable by anyone. |
QFileDevice::WriteOther | 0x0002 | The file is writable by anyone. |
QFileDevice::ExeOther | 0x0001 | The file is executable by anyone. |
Warning: Because of differences in the platforms supported by Qt, the semantics of ReadUser, WriteUser and ExeUser are platform-dependent: On Unix, the rights of the owner of the file are returned and on Windows the rights of the current user are returned. This behavior might change in a future Qt version.
Note that Qt does not by default check for permissions on NTFS file systems, as this may decrease the performance of file handling considerably. It is possible to force permission checking on NTFS by including the following code in your source:
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
Permission checking is then turned on and off by incrementing and decrementing qt_ntfs_permission_lookup by 1.
qt_ntfs_permission_lookup++; // turn checking on qt_ntfs_permission_lookup--; // turn it off again
The Permissions type is a typedef for QFlags<Permission>. It stores an OR combination of Permission values.
Destroys the file device, closing it if necessary.
Reimplemented from QIODevice::atEnd().
Returns true if the end of the file has been reached; otherwise returns false.
For regular empty files on Unix (e.g. those in /proc), this function returns true, since the file system reports that the size of such a file is 0. Therefore, you should not depend on atEnd() when reading data from such a file, but rather call read() until no more data can be read.
Reimplemented from QIODevice::close().
Calls QFileDevice::flush() and closes the file. Errors from flush are ignored.
See also QIODevice::close().
Returns the file error status.
The I/O device status returns an error code. For example, if open() returns false, or a read/write operation returns -1, this function can be called to find out the reason why the operation failed.
See also unsetError().
Returns the name of the file. The default implementation in QFileDevice returns QString().
Flushes any buffered data to the file. Returns true if successful; otherwise returns false.
Returns the file handle of the file.
This is a small positive integer, suitable for use with C library functions such as fdopen() and fcntl(). On systems that use file descriptors for sockets (i.e. Unix systems, but not Windows) the handle can be used with QSocketNotifier as well.
If the file is not open, or there is an error, handle() returns -1.
This function is not supported on Windows CE.
See also QSocketNotifier.
Reimplemented from QIODevice::isSequential().
Returns true if the file can only be manipulated sequentially; otherwise returns false.
Most files support random-access, but some special files may not.
See also QIODevice::isSequential().
Maps size bytes of the file into memory starting at offset. A file should be open for a map to succeed but the file does not need to stay open after the memory has been mapped. When the QFile is destroyed or a new file is opened with this object, any maps that have not been unmapped will automatically be unmapped.
Any mapping options can be passed through flags.
Returns a pointer to the memory or 0 if there is an error.
Note: On Windows CE 5.0 the file will be closed before mapping occurs.
See also unmap().
Returns the complete OR-ed together combination of QFile::Permission for the file.
See also setPermissions().
Reimplemented from QIODevice::pos().
Reimplemented from QIODevice::readData().
Reimplemented from QIODevice::readLineData().
Sets the file size (in bytes) sz. Returns true if the file if the resize succeeds; false otherwise. If sz is larger than the file currently is the new bytes will be set to 0, if sz is smaller the file is simply truncated.
See also size().
Reimplemented from QIODevice::seek().
For random-access devices, this function sets the current position to pos, returning true on success, or false if an error occurred. For sequential devices, the default behavior is to do nothing and return false.
Seeking beyond the end of a file: If the position is beyond the end of a file, then seek() shall not immediately extend the file. If a write is performed at this position, then the file shall be extended. The content of the file between the previous end of file and the newly written data is UNDEFINED and varies between platforms and file systems.
Sets the permissions for the file to the permissions specified. Returns true if successful, or false if the permissions cannot be modified.
See also permissions().
Reimplemented from QIODevice::size().
Returns the size of the file.
For regular empty files on Unix (e.g. those in /proc), this function returns 0; the contents of such a file are generated on demand in response to you calling read().
Unmaps the memory address.
Returns true if the unmap succeeds; false otherwise.
See also map().
Sets the file's error to QFileDevice::NoError.
See also error().
Reimplemented from QIODevice::writeData().