QFileDevice类提供用于读取和写入打开文件的接口。
Header: | #include < QFileDevice > |
---|---|
qmake: | QT += core |
Inherits: | QIODevice |
Inherited By: | QFile and QSaveFile |
QFileDevice是可以读取和写入文本以及二进制文件和资源的I / O设备的基类。 QFile提供主要功能,QFileDevice通过提供可以对已由QFile或QTemporaryFile打开的文件执行的所有操作,来与其他文件设备(如QTemporaryFile) 共享功能,作为基类。
另请参见QFile和QTemporaryFile。
enum FileError
该枚举描述了error() 函数可能返回的错误。
Constant | Value | Description |
---|---|---|
NoError | 0 | 没有发生错误。 |
ReadError | 1 | 从文件读取时发生错误。 |
WriteError | 2 | 写入文件时发生错误。 |
FatalError | 3 | 发生致命错误。 |
ResourceError | 4 | 资源不足(例如,打开的文件过多,内存不足等) |
OpenError | 5 | 无法打开该文件。 |
AbortError | 6 | 该操作被中止。 |
TimeOutError | 7 | 发生超时。 |
UnspecifiedError | 8 | 发生未指定的错误。 |
RemoveError | 9 | 无法删除该文件。 |
RenameError | 10 | 该文件无法重命名。 |
PositionError | 11 | 文件中的位置无法更改。 |
ResizeError | 12 | 无法调整文件大小。 |
PermissionsError | 13 | 无法访问该文件。 |
CopyError | 14 | 无法复制该文件。 |
enum FileHandleFlag
flags FileHandleFlags
打开文件时使用此枚举来指定仅适用于文件而不适用于常规QIODevice的其他选项。
Constant | Value | Description |
---|---|---|
AutoCloseHandle | 0x0001 | 传递给open() 的文件句柄应由close() 关闭,默认行为是close仅刷新文件,而应用程序负责关闭文件句柄。 当按名称打开文件时,此标志将被忽略,因为Qt始终拥有文件句柄并且必须将其关闭。 |
DontCloseHandle | 0 | 如果未显式关闭,则销毁QFile对象时,基础文件句柄将保持打开状态。 |
enum FileTime
这个枚举由fileTime() 和setFileTime() 函数使用。
Constant | Value | Description |
---|---|---|
FileAccessTime | 0 | 最近一次访问文件的时间(例如读或写) 。 |
FileBirthTime | 1 | 创建文件时(在UNIX上可能不受支持) 。 |
FileMetadataChangeTime | 2 | 文件的元数据上次更改的时间。 |
FileModificationTime | 3 | 最近一次修改文件的时间。 |
enum MemoryMapFlags
该枚举描述了map() 函数可以使用的特殊选项。
Constant | Value | Description |
---|---|---|
NoOptions | 0 | 没有选择。 |
MapPrivateOption | 0x0001 | 映射的内存将是私有的,因此任何修改对其他进程都不可见,也不会写入磁盘。 当取消映射内存时,任何此类修改都将丢失。 尚不确定在创建映射后对文件所做的修改是否可以通过映射的内存看到。 这个枚举值是在Qt 5.4中引入的。 |
enum Permission
flags Permissions
permission() 函数使用此枚举来报告文件的权限和所有权。 可以将这些值进行或运算以测试多个权限和所有权值。
Constant | Value | Description |
---|---|---|
ReadOwner | 0x4000 | 文件的所有者可以读取该文件。 |
WriteOwner | 0x2000 | 该文件可由文件所有者写。 |
ExeOwner | 0x1000 | 该文件可由文件所有者执行。 |
ReadUser | 0x0400 | 用户可以读取该文件。 |
WriteUser | 0x0200 | 该文件可由用户写入。 |
ExeUser | 0x0100 | 该文件可由用户执行。 |
ReadGroup | 0x0040 | 该组可读该文件。 |
WriteGroup | 0x0020 | 该文件可由组写。 |
ExeGroup | 0x0010 | 该文件可由组执行。 |
ReadOther | 0x0004 | 任何人都可以读取该文件。 |
WriteOther | 0x0002 | 该文件是任何人都可写的。 |
ExeOther | 0x0001 | 任何人都可以执行该文件。 |
警告:由于Qt支持的平台不同,因此ReadUser,WriteUser和ExeUser的语义取决于平台:在Unix上,返回文件所有者的权限,在Windows上,返回当前用户的权限。 在将来的Qt版本中,此行为可能会更改。
注意:在NTFS文件系统上,出于性能原因,默认情况下禁用所有权和权限检查。 要启用它,请包含以下行:
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
然后通过将qt_ntfs_permission_lookup递增和递减1来打开和关闭权限检查。
qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again