PySide6.QtCore.QFileDevice¶
- 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
) 此枚举用于 permission() 函数来报告文件的权限和所有权。这些值可以通过 OR 运算组合在一起,以测试多个权限和所有权值。常量
描述
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 MemoryMapFlag¶
(继承自
enum.Flag
) 此枚举描述了可能由map()
函数使用的特殊选项。常量
描述
QFileDevice.NoOptions
没有选项。
QFileDevice.MapPrivateOption
映射的内存将是私有的,因此任何修改对其他进程不可见,也不会写入磁盘。当内存取消映射时,任何此类修改都将丢失。未指定在创建映射后对文件所做的修改是否通过映射的内存可见。此枚举值在Qt 5.4中引入。
- __init__()¶
- __init__(parent)
- Parameters:
父对象 –
QObject
返回文件错误状态。
I/O设备状态返回一个错误代码。例如,如果
open()
返回false
,或者读/写操作返回-1,可以调用此函数来找出操作失败的原因。另请参阅
- fileName()¶
- Return type:
字符串
返回文件的名称。
QFileDevice
中的默认实现返回一个空字符串。返回由
time
指定的文件时间。如果无法确定时间,则返回QDateTime()(一个无效的日期时间)。- flush()¶
- Return type:
布尔
将任何缓冲的数据刷新到文件中。如果成功,返回
true
;否则返回false
。- handle()¶
- Return type:
整数
返回文件的文件句柄。
这是一个小的正整数,适合与C库函数一起使用,例如
fdopen()
和fcntl()
。在使用文件描述符进行套接字操作的系统上(即Unix系统,但不包括Windows),该句柄也可以与QSocketNotifier
一起使用。如果文件未打开,或出现错误,handle() 返回 -1。
另请参阅
- map(offset, size[, flags=QFileDevice.MemoryMapFlag.NoOptions])¶
- Parameters:
offset – int
size – int
flags –
MemoryMapFlag
的组合
- Return type:
PyObject
将文件的
size
字节从offset
开始映射到内存中。文件应该被打开以便映射成功,但在内存映射后文件不需要保持打开状态。当QFile
被销毁或使用此对象打开新文件时,任何未取消映射的映射将自动取消映射。映射将具有与文件相同的打开模式(读取和/或写入),除非使用
MapPrivateOption
,在这种情况下,始终可以写入映射的内存。任何映射选项都可以通过
flags
传递。返回指向内存的指针,如果出现错误则返回
None
。另请参阅
- permissions()¶
- Return type:
Permission
的组合
返回文件的QFile::Permission的完整按位或组合。
另请参阅
- resize(sz)¶
- Parameters:
sz – int
- Return type:
布尔
设置文件大小(以字节为单位)
sz
。如果调整大小成功,则返回true
;否则返回false。如果sz
大于当前文件大小,新字节将被设置为0;如果sz
较小,则文件将被截断。警告
如果文件不存在,此函数可能会失败。
另请参阅
size()
将
fileTime
指定的文件时间设置为newDate
,如果成功则返回true;否则返回false。- setPermissions(permissionSpec)¶
- Parameters:
permissionSpec –
Permission
的组合- Return type:
布尔
将文件的权限设置为指定的
permissions
。如果成功,则返回true
,如果无法修改权限,则返回false
。- unmap(address)¶
- Parameters:
地址 – str
- Return type:
布尔
取消映射内存
address
。如果取消映射成功,则返回
true
;否则返回false。另请参阅
- unsetError()¶
将文件的错误设置为
NoError
。另请参阅