- class QFileDevice#
类
QFileDevice
为从和向打开文件提供接口。 更多…继承自:
QSaveFile
、QFile
、QTemporaryFile
概要#
方法#
def
__init__()
def
error()
def
fileTime()
def
flush()
def
handle()
def
map()
def
setFileTime()
def
unmap()
def
unsetError()
虚函数#
def
fileName()
def
permissions()
def
resize()
def
setPermissions()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。
详细描述#
QFileDevice
是用于读取和写入文本和二进制文件以及资源的I/O设备的基类。QFile
提供了主要功能,QFileDevice
则作为基类,以便与如QSaveFile
等文件设备共享功能,通过提供在通过QFile
或QSaveFile
打开的文件上可以进行的所有操作。- class FileError#
此枚举描述了
error()
函数可能返回的错误。常量
描述
QFileDevice.NoError
未发生错误。
QFileDevice.ReadError
读取文件时发生错误。
QFileDevice.WriteError
写入文件时发生错误。
QFileDevice.FatalError
发生致命错误。
QFileDevice.ResourceError
资源耗尽(例如,打开的文件太多、内存不足等)
QFileDevice.OpenError
无法打开文件。
QFileDevice.AbortError
操作被取消。
QFileDevice.TimeOutError
发生超时。
QFileDevice.UnspecifiedError
发生未指定错误。
QFileDevice.RemoveError
无法删除文件。
QFileDevice.RenameError
无法重命名文件。
QFileDevice.PositionError
无法更改文件中的位置。
QFileDevice.ResizeError
无法调整文件大小。
QFileDevice.PermissionsError
无法访问文件。
QFileDevice.CopyError
无法复制文件。
- class FileTime#
此枚举用于
fileTime()
和setFileTime()
函数。常量
描述
QFileDevice.FileAccessTime
文件最后访问的时间(例如,读取或写入)。
QFileDevice.FileBirthTime
文件创建的时间(在UNIX上可能不支持)。
QFileDevice.FileMetadataChangeTime
文件元数据最后更改的时间。
QFileDevice.FileModificationTime
文件最后修改的时间。
- class Permission#
警告
本节包含自动从C++翻译成Python的代码片段,可能包含错误。
(继承自
enum.Flag
) 该枚举用于权限()函数报告文件的权限和所有权。值可以组合在一起来测试多个权限和所有权值。常量
描述
QFileDevice.ReadOwner
文件可由文件的所有者读取。
QFileDevice.WriteOwner
文件可由文件的所有者写入。
QFileDevice.ExeOwner
文件可由文件的所有者执行。
QFileDevice.ReadUser
文件可由用户读取。
QFileDevice.WriteUser
文件可由用户写入。
QFileDevice.ExeUser
文件可由用户执行。
QFileDevice.ReadGroup
文件可由组读取。
QFileDevice.WriteGroup
文件可由组写入。
QFileDevice.ExeGroup
文件可由组执行。
QFileDevice.ReadOther
文件可由其他人读取。
QFileDevice.WriteOther
文件可由其他人写入。
QFileDevice.ExeOther
文件可由其他人执行。
警告
由于Qt支持的平台不同,ReadUser、WriteUser 和 ExeUser 的语义取决于平台:在Unix上,返回文件所有者的权利,而在Windows上,返回当前用户的权利。此行为可能会在未来的Qt版本中改变。
注意
在NTFS文件系统上,出于性能原因,默认禁用了所有权和权限检查。要启用它,请包含以下行
Q_CORE_EXPORT = extern()
权限检查随后通过递增和递减
qt_ntfs_permission_lookup
为 1 来打开和关闭。qt_ntfs_permission_lookup++ # turn checking on qt_ntfs_permission_lookup-- # turn it off again
注意
由于这是一个非原子的全局变量,只有在所有线程(除了主线程)都已启动之前或在所有线程(除了主线程)结束后才安全地递增或递减
qt_ntfs_permission_lookup
。注意
从Qt 6.6开始,
qt_ntfs_permission_lookup
变量已弃用。请使用以下替代方案。管理权限检查的最安全和最简便方法是用RAII类
QNtfsPermissionCheckGuard
。def complexFunction(): QNtfsPermissionCheckGuard permissionGuard # check is enabled # do complex things here that need permission check enabled } // as the guard goes out of scope the check is disabled
如果您需要更细粒度的控制,可以使用以下功能来管理权限:
qAreNtfsPermissionChecksEnabled() # check status qEnableNtfsPermissionChecks() # turn checking on qDisableNtfsPermissionChecks() # turn it off again
- class FileHandleFlag#
(继承自
enum.Flag
) 此枚举在打开文件时使用,用于指定只适用于文件而不适用于通用QIODevice
的附加选项。常量
描述
QFileDevice.AutoCloseHandle
open()
函数中传入的文件句柄应通过close()
关闭,默认行为是只是刷新文件,应用程序负责关闭文件句柄。通过文件名打开文件时,此标志将被忽略,因为 Qt 总是拥有文件句柄并必须关闭它。QFileDevice.DontCloseHandle
如果未显式关闭,则在
QFile
对象销毁时,底层文件句柄将保持打开状态。
- class MemoryMapFlag#
(继承自
enum.Flag
) 此枚举描述了可能由map()
函数使用的特殊选项。常量
描述
QFileDevice.NoOptions
无选项。
QFileDevice.MapPrivateOption
映射的内存将是私有的,因此任何修改都不会对其他进程可见,也不会写入磁盘。任何此类修改将在内存取消映射时丢失。在映射创建之后对文件进行的修改是否通过映射内存可见是不确定的。此枚举值在 Qt 5.4 中引入。
- __init__()#
- __init__(parent)
- 参数:
parent –
QObject
返回文件错误状态。
I/O 设备状态返回一个错误码。例如,如果
open()
返回false
,或者读写操作返回 -1,可以调用此函数来找出操作失败的原因。参阅
- fileName()#
- 返回类型:
str
返回文件名。在
QFileDevice
中的默认实现返回一个空字符串。返回由
time
指定的文件时间。如果不能确定时间,返回 QDateTime()(一个无效的日期时间)。- flush()#
- 返回类型:
bool
将任何缓冲的数据刷新到文件中。如果成功,返回
true
;否则返回false
。- handle()#
- 返回类型:
int
返回文件的文件句柄。
这是一个小的正整数,适合用于C库函数,例如
fdopen()
和fcntl()
。在使用文件描述符作为套接字的系统上(即Unix系统,但不是Windows),句柄也可以与QSocketNotifier
一起使用。如果文件未打开,或有错误发生,handle() 返回 -1。
- map(offset, size[, flags=QFileDevice.MemoryMapFlag.NoOptions])#
- 参数:
偏移 – int
大小 – int
标志 –
MemoryMapFlag
的组合
- 返回类型:
PyObject
将
size
字节的文件映射到以offset
开始的内存中。映射成功时,文件应该是打开的,但文件映射后不必保持打开状态。当QFile
被销毁或使用此对象打开新文件时,任何尚未取消映射的映射将自动取消映射。映射将具有与文件相同的打开模式(读取和/或写入),除非使用
MapPrivateOption
,在这种情况下,始终可以写入映射的内存。可以通过
flags
传递任何映射选项。返回内存指针或
None
(如果发生错误)。参阅
- permissions()#
- 返回类型:
Permission
的组合
返回文件QFile::Permission的完全OR组合。
- resize(sz)#
- 参数:
sz – int
- 返回类型:
bool
设置文件大小(以字节为单位)
sz
。如果调整大小成功则返回true
,否则返回false。如果sz
大于当前的文件大小,新的字节将被设置为0;如果小于,文件将被简单地截断。警告
如果文件不存在,则此函数可能失败。
参阅
size()
将由
fileTime
指定的文件时间设置为newDate
,如果成功则返回true,否则返回false。- setPermissions(permissionSpec)#
- 参数:
permissionSpec –
Permission
的组合- 返回类型:
bool
将文件的权限设置为指定的
permissions
。如果成功则返回true
,如果权限无法修改则返回false
。- unmap(address)#
- 参数:
地址 – 字符串
- 返回类型:
bool
取消映射内存
address
。如果取消映射成功,则返回
true
;否则返回 false。参阅
- unsetError()#
将文件的错误设置为
NoError
.参阅