- class QFileInfo#
QFileInfo
类提供了一个与操作系统无关的 API,用于检索文件系统条目的信息。 更多…概述#
方法#
def
__init__()
def
__reduce__()
def
absoluteDir()
def
absolutePath()
def
baseName()
def
birthTime()
def
bundleName()
def
caching()
定义
dir()
定义
exists()
定义
fileName()
定义
filePath()
定义
fileTime()
定义
group()
定义
groupId()
定义
isAbsolute()
定义
isAlias()
定义
isBundle()
定义
isDir()
定义
isFile()
定义
isHidden()
定义
isJunction()
定义
isReadable()
定义
isRelative()
定义
isRoot()
定义
isShortcut()
定义
isSymLink()
定义
isWritable()
定义
lastRead()
定义
__ne__()
定义
__eq__()
定义
owner()
定义
ownerId()
定义
path()
定义
permission()
定义
refresh()
定义
setCaching()
定义
setFile()
定义
size()
定义
stat()
定义
suffix()
定义
swap()
静态函数#
定义
exists()
备注
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有任何问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告知我们。
详细描述#
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QFileInfo
提供有关文件系统条目的信息,例如其名称、路径、访问权限以及它是否是普通文件、目录或符号链接。条目的大小和最后修改/读取时间也可用。此外,QFileInfo
还可以用来获取有关 Qt 资源 的信息。QFileInfo
可以通过绝对或相对路径指向文件系统条目在Unix上,绝对路径以目录分隔符
'/'
开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/
)。相对路径以目录名称或常规文件名称开头,并指定相对当前工作目录的文件系统条目路径。
绝对路径的示例是字符串
"/tmp/quartz"
。相对路径可能看起来像"src/fatlib"
。您可以使用函数isRelative()
来检查QFileInfo
是否使用相对或绝对路径。您还可以调用函数makeAbsolute()
将相对的QFileInfo
的路径转换为绝对路径。备注
以冒号 (:) 开头的路径始终被认为是绝对的,因为它们表示一个
QResource
。QFileInfo
处理的文件系统条目路径在构造函数中或在后续调用setFile()
后被设置。使用exists()
来检查条目是否确实存在,以及使用size()
来获取它的大小。文件系统条目的类型可以通过
isFile()
、isDir()
和isSymLink()
获取。函数symLinkTarget()
提供了符号链接所指向目标的绝对路径。可以使用
path()
和fileName()
从文件系统条目中提取路径元素。使用baseName()
、suffix()
或completeSuffix()
可以从fileName()
提取各个部分。用 Qt 类创建的目录的QFileInfo
对象不会带有尾随目录分隔符'/'
。如果您希望在您自己的文件信息对象中使用尾部分隔符,只需将其追加到构造函数中或setFile()
提供的条目路径即可。日期和时间相关信息由
birthTime()
、fileTime()
、lastModified()
、lastRead()
和metadataChangeTime()
等方法返回。访问权限信息可以通过isReadable()
、isWritable()
和isExecutable()
等方法获取。所有权信息可以通过owner()
、ownerId()
、group()
和groupId()
获取。您还可以使用permission()
函数在单个语句中检查权限和所有权。符号链接和快捷方式#
在 Unix(包括 macOS 和 iOS)中,此类中的属性获取函数返回的是目标的时间大小等属性,而不是符号链接本身,因为 Unix 对符号链接的处理是透明的。使用
QFile
打开符号链接实际上打开的是链接的目标。例如:#ifdef Q_OS_UNIX info1 = QFileInfo("/home/bob/bin/untabify") info1.isSymLink() # returns true info1.absoluteFilePath() # returns "/home/bob/bin/untabify" info1.size() # returns 56201 info1.symLinkTarget() # returns "/opt/pretty++/bin/untabify" info2 = QFileInfo(info1.symLinkTarget()) info2.isSymLink() # returns false info2.absoluteFilePath() # returns "/opt/pretty++/bin/untabify" info2.size() # returns 56201 #endif
在 Windows 中,快捷方式(
.lnk
文件)目前被视为符号链接。与 Unix 系统类似,属性获取器返回的是目标的大小,而不是.lnk
文件本身。这种做法已被弃用,并可能在 Qt 的未来版本中被移除,届时.lnk
文件将被视为普通文件。#ifdef Q_OS_WIN info1 = QFileInfo("C:\\Users\\Bob\\untabify.lnk") info1.isSymLink() # returns true info1.absoluteFilePath() # returns "C:/Users/Bob/untabify.lnk" info1.size() # returns 63942 info1.symLinkTarget() # returns "C:/Pretty++/untabify" info2 = QFileInfo(info1.symLinkTarget()) info2.isSymLink() # returns false info2.absoluteFilePath() # returns "C:/Pretty++/untabify" info2.size() # returns 63942 #endif
NTFS 权限#
在 NTFS 文件系统中,出于性能原因,默认禁用了所有权和权限检查。要启用它,请包含以下行:
Q_CORE_EXPORT = extern()
然后,通过增加和减少
qt_ntfs_permission_lookup
的值来开启和关闭权限检查。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
性能考量#
some of
QFileInfo
的函数需要查询文件系统,但是出于性能考虑,一些函数只对路径字符串进行操作。例如:为了返回相对条目的绝对路径,absolutePath()
需要查询文件系统。然而,path()
函数能够直接在文件名上工作,因此它更快。QFileInfo
还缓存了其指代的文件系统条目的信息。因为文件系统可能被其他用户或程序,或者甚至是同一程序的其他部分更改,因此存在一个用于刷新在QFileInfo
中存储的信息的函数,即refresh()
。要关闭QFileInfo
的缓存(即,强制它在每次请求信息时都查询底层文件系统),请调用setCaching
(false)。通常通过调用可能的昂贵系统函数从文件系统中获取信息,所以
QFileInfo
(取决于实现)可能在构造时不会从文件系统中获取所有信息。为了保证立即从文件系统中读取所有信息,请使用stat()
成员函数。birthTime()
,fileTime()
,lastModified()
,lastRead()
和metadataChangeTime()
默认情况下都使用本地时间。由于本地文件系统API通常使用UTC,这需要进行转换。如果实际上不需要本地时间,可以通过直接请求UTC
来避免。平台特定问题#
在Android上,处理内容URI时有一些限制。
创建一个新的
QFileInfo
对象,该对象提供有关相对于目录dir
的给定文件系统条目path
的信息。如果
dir
具有相对路径,则QFileInfo也将具有相对路径。如果
path
是绝对路径,则将忽略由dir
指定的目录。另请参阅
- __init__()
构造一个空的
QFileInfo
对象,该对象不指向任何文件系统条目。另请参阅
- __init__(file)
- 参数:
file – str
构造一个
QFileInfo
对象,该对象提供位于路径path
的文件系统条目的信息,可以是绝对路径也可以是相对路径。如果
path
是相对路径,那么QFileInfo
也将包含一个相对路径。- __init__(file)
- 参数:
file –
QFileDevice
构造一个新
QFileInfo
对象,该对象提供关于文件file
的信息。如果文件
file
的路径是相对的,那么QFileInfo
也将包含一个相对路径。另请参阅
- __init__(fileinfo)
- 参数:
fileinfo –
QFileInfo
构造一个新的
QFileInfo
对象,它是给定fileinfo
的副本。- __reduce__()#
- 返回类型::
对象
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回一个表示该
QFileInfo
指向的文件系统条目父目录的绝对路径的QDir
对象。# Given a current working directory of "/home/user/Documents/memos/" info1 = QFileInfo("relativeFile") print(info1.absolutePath() # "/home/user/Documents/memos/") print(info1.baseName() # "relativeFile") print(info1.absoluteDir() # QDir("/home/user/Documents/memos")) print(info1.absoluteDir().path() # "/home/user/Documents/memos") # A QFileInfo on a dir info2 = QFileInfo("/home/user/Documents/memos") print(info2.absolutePath() # "/home/user/Documents") print(info2.baseName() # "memos") print(info2.absoluteDir() # QDir("/home/user/Documents")) print(info2.absoluteDir().path() # "/home/user/Documents")
- absoluteFilePath()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回该
QFileInfo
对象所指文件系统条目的绝对完整路径,包括条目的名称。在Unix上,绝对路径以目录分隔符
'/'
开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/
)。在Windows上,未映射到驱动器字母的网络共享路径以
//sharename/
开头。QFileInfo
会将驱动器字母转换为大写。请注意,QDir
不会这样做。下面的代码示例展示了这一点。QFileInfo fi("c:/temp/foo"); => fi.absoluteFilePath() => "C:/temp/foo"
此函数返回的与
filePath()
相同,除非isRelative()
为true。与canonicalFilePath()
相比,符号链接或多余的“.”或“..”元素不一定被删除。- absolutePath()#
- 返回类型::
字符串
返回该
QFileInfo
对象所指文件系统条目的绝对路径,不包括条目的名称。在Unix上,绝对路径以目录分隔符
'/'
开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/
)。在Windows上,未映射到驱动器字母的网络共享路径以
//sharename/
开头。与
canonicalPath()
不同,符号链接或多余的“.”或“..”元素不一定被删除。警告
如果
filePath()
为空,则此函数的行为是未定义的。- baseName()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回文件的基名,不包括路径。
基名由文件中的所有字符组成,直到(但不包括)第一个‘.’字符。
示例
fi = QFileInfo("/tmp/archive.tar.gz") base = fi.baseName() # base = "archive"
基名的计算在所有平台上都是相同的,独立于文件命名约定(例如,Unix上的“.bashrc”有一个空的基名,后缀是“bashrc”)。
返回文件创建(出生)时的日期和时间(本地时间)。
如果文件创建时间不可用,则此函数返回无效的
QDateTime
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
此函数重载
QFileInfo::birthTime(const QTimeZone &tz)
,并返回与birthTime(QTimeZone::LocalTime)
相同的结果。返回文件创建(出生)时的日期和时间。
返回的时间使用
tz
指定的时区。例如,您可以使用LocalTime
或UTC
来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC
通常更快,因为它不需要进行转换。如果文件创建时间不可用,则此函数返回无效的
QDateTime
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
lastModified(const QTimeZone &)
lastRead(const QTimeZone &)
metadataChangeTime(const QTimeZone &)
FileTime, const QTimeZone &)
- bundleName()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回捆绑包的名称。
在macOS和iOS中,如果路径
isBundle()
是捆绑包,则返回相应的本地化名称。在其他所有平台上返回一个空QString
。示例
fi = QFileInfo("/Applications/Safari.app") bundle = fi.bundleName() # name = "Safari"
- caching()#
- 返回类型::
bool
如果启用了缓存,则返回
true
;否则返回false
。另请参阅
- canonicalFilePath()#
- 返回类型::
字符串
返回文件系统条目的规范路径,包括条目的名称,即没有符号链接或冗余的
'.'
或'..'
元素的绝对路径。如果条目不存在,则
canonicalFilePath()
返回一个空字符串。- canonicalPath()#
- 返回类型::
字符串
返回文件系统条目的规范路径(不包括条目的名称),即不含符号链接的绝对路径,也不含多余的“.”或“..”元素。
如果条目不存在,此方法返回空字符串。
另请参阅
- completeBaseName()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回文件的不带路径的完整基本名。
完整基本名包括文件中最后一个“.”字符之前的所有字符。
示例
fi = QFileInfo("/tmp/archive.tar.gz") base = fi.completeBaseName() # base = "archive.tar"
- completeSuffix()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回文件的完整后缀(扩展名)。
完整后缀包括文件中第一个“.”之后的所有字符。
示例
fi = QFileInfo("/tmp/archive.tar.gz") ext = fi.completeSuffix() # ext = "tar.gz"
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回一个代表此
QFileInfo
指向的文件系统条目的父目录路径的QDir
对象。对于以下每个,dir()返回的
QDir
"~/examples/191697"
。fileInfo1 = QFileInfo("~/examples/191697/.") fileInfo2 = QFileInfo("~/examples/191697/..") fileInfo3 = QFileInfo("~/examples/191697/main.cpp")
对于以下每个,dir()返回的
QDir
"."
。fileInfo4 = QFileInfo(".") fileInfo5 = QFileInfo("..") fileInfo6 = QFileInfo("main.cpp")
- exists()#
- 返回类型::
bool
如果该
QFileInfo
所引用的文件系统条目存在,返回true
;否则返回false
。备注
如果条目是一个指向不存在的目标的符号链接,则此方法返回
false
。- 静态 exists(file)
- 参数:
file – str
- 返回类型::
bool
如果文件系统条目
path
存在,则返回true
;否则返回false
。备注
如果
path
是一个指向不存在的目标的符号链接,则此方法返回false
。备注
使用此函数相比使用
QFileInfo(path).exists()
进行文件系统访问更快。- fileName()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回该
QFileInfo
所引用的文件系统条目的名称,不包括路径。示例
fi = QFileInfo("/tmp/archive.tar.gz") name = fi.fileName() # name = "archive.tar.gz"
- filePath()#
- 返回类型::
字符串
返回该QFileInfo对象所引用文件系统条目的路径;路径可能是绝对路径或相对路径。
返回由time指定的文件时间。
如果无法确定时间,则返回一个无效的日期时间。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
此函数重载了
FileTime, const QTimeZone &)
,并返回与fileTime(time, QTimeZone::LocalTime)
相同的值。返回由time指定的文件时间。
返回的时间使用
tz
指定的时区。例如,您可以使用LocalTime
或UTC
来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC
通常更快,因为它不需要进行转换。如果无法确定时间,则返回一个无效的日期时间。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
birthTime(const QTimeZone &)
lastModified(const QTimeZone &)
lastRead(const QTimeZone &)
metadataChangeTime(const QTimeZone &)
isValid()
- group()#
- 返回类型::
字符串
返回文件的组。在Windows上,在文件没有组的系统上,或者在出现错误的情况下,返回空字符串。
在Unix系统中,此函数可能耗时要花费时间(数量级为毫秒)。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- groupId()#
- 返回类型::
int
返回文件所属组的id。
在Windows上和在文件没有组的系统上,此函数始终返回(uint)-2。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- isAbsolute()#
- 返回类型::
bool
如果文件系统条目的路径是绝对的,则返回
true
,否则返回false
(即路径是相对的)。- isAlias()#
- 返回类型::
bool
如果此对象指向一个别名,则返回
true
;否则返回false
。别名只存在于macOS上。它们被视为常规文件,因此打开别名将打开该文件本身。要打开别名引用的文件或目录,请使用
symLinkTarget()
.- isBundle()#
- 返回类型::
bool
如果此对象指向一个捆绑包或指向macOS和iOS上捆绑包的符号链接,则返回
true
;否则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
- isDir()#
- 返回类型::
bool
如果此对象指向目录或指向目录的符号链接,则返回
true
。如果对象指向的不是一个目录(如文件)或者不存在,则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- isExecutable()#
- 返回类型::
bool
如果此
QFileInfo
指向的文件系统条目是可执行的,则返回true
;否则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- isFile()#
- 返回类型::
bool
如果此对象指向文件或指向文件的符号链接,则返回
true
。如果对象指向的不是一个文件(如目录)或者不存在,则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
- isHidden()#
- 返回类型::
bool
如果此
QFileInfo
指向的文件系统条目是 `隐藏的`,则返回true
;否则返回false
。备注
此函数对 Unix 中的特殊条目“.”和“..”返回
true
,尽管entryList
将它们视为所示。注意,由于此函数检查文件名,因此,在 Unix 中,它将检查符号链接的名称(如果此文件是符号链接,则不是目标名称)。在 Windows 中,如果目标文件是隐藏的(而不是符号链接),则此函数返回
true
。- isJunction()#
- 返回类型::
bool
如果对象指向一个连接点,则返回
true
;否则返回false
。连接点仅存在于Windows的NTFS文件系统中,通常由
mklink
命令创建。可以将它们视为目录的符号链接,并且只能为本地卷上的绝对路径创建。- isNativePath()#
- 返回类型::
bool
如果文件路径可以直接与本地API一起使用,则返回
true
。如果文件由Qt内部虚拟文件系统支持,如QFileInfo
,则返回false
。备注
根据平台和本地API的输入要求,原生路径可能还需要转换路径分隔符和字符编码。
- isReadable()#
- 返回类型::
bool
如果用户可以读取此
QFileInfo
指向的文件系统条目,则返回true
;否则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- isRelative()#
- 返回类型::
bool
如果文件系统条目的路径是相对的,则返回
true
,否则返回false
(即路径是绝对的)。在Unix上,绝对路径以目录分隔符
'/'
开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/
)。- isRoot()#
- 返回类型::
bool
如果对象指向目录或指向目录的符号链接,且该目录是根目录,则返回
true
;否则返回false
。- isShortcut()#
- 返回类型::
bool
如果此对象指向快捷方式,则返回
true
;否则返回false
。快捷方式仅在Windows上存在,通常是
.lnk
文件。例如,在Windows上的快捷方式(*.lnk
文件)将返回true,但在Unix(包括macOS和iOS)上将返回false。快捷方式(.lnk)文件被视为常规文件。打开它们将打开
.lnk
文件本身。要打开快捷方式引用的文件,必须在快捷方式上使用symLinkTarget()
。备注
即使快捷方式(损坏的快捷方式)指向不存在的文件,isShortcut()也返回true。
- isSymLink()#
- 返回类型::
bool
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
如果此对象指向符号链接、快捷方式或别名,则返回
true
;否则返回false
。符号链接存在于Unix(包括macOS和iOS)和Windows上,通常是通过
ln -s
或mklink
命令创建的。打开符号链接实际上会打开链接的目标
。此外,在Windows上,对于快捷方式(.lnk文件),以及在macOS上的别名,将返回true。此行为已弃用,并且在Qt的未来版本中可能会发生变化。打开快捷方式或别名将打开
.lnk
或别名文件本身。示例
info = QFileInfo(fileName) if info.isSymLink(): fileName = info.symLinkTarget()
- isSymbolicLink()#
- 返回类型::
bool
如果此对象指向符号链接,则返回
true
;否则返回false
。符号链接存在于Unix(包括macOS和iOS)和Windows(NTFS符号链接)上,通常通过
ln -s
或mklink
命令来创建。Unix对符号链接的处理是透明的。打开一个符号链接实际上是打开
链接的目标
。与
isSymLink()
不同,在Windows上对快捷方式(*.lnk
文件)和macOS上的别名返回将是false。请使用isShortcut()
和isAlias()
代替。- isWritable()#
- 返回类型::
bool
如果用户可以写入此
QFileInfo
引用的文件系统条目,则返回true
;否则返回false
。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- junctionTarget()#
- 返回类型::
字符串
将NTFS连接解析为目标路径。
返回NTFS连接指向的目录的绝对路径,或者如果对象不是NTFS连接,则返回空字符串。
不能保证由NTFS连接命名的目录实际上存在。
返回文件最后修改的日期和时间。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
此函数重载了
lastModified(const QTimeZone &)
并返回与lastModified(QTimeZone::LocalTime)
相同的结果。返回文件最后修改的日期和时间。
返回的时间使用
tz
指定的时区。例如,您可以使用LocalTime
或UTC
来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC
通常更快,因为它不需要进行转换。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
birthTime(const QTimeZone &)
lastRead(const QTimeZone &)
metadataChangeTime(const QTimeZone &)
FileTime, const QTimeZone &)
返回文件上次被读取(访问)的日期和时间。
在不支持此信息的平台上,返回与
lastModified()
相同的时间。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
此函数重载
lastRead(const QTimeZone &)
并返回与lastRead(QTimeZone::LocalTime)
相同的结果。返回文件上次被读取(访问)的日期和时间。
返回的时间使用
tz
指定的时区。例如,您可以使用LocalTime
或UTC
来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC
通常更快,因为它不需要进行转换。在不支持此信息的平台上,返回与
lastModified()
相同的时间。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
birthTime(const QTimeZone &)
lastModified(const QTimeZone &)
metadataChangeTime(const QTimeZone &)
FileTime, const QTimeZone &)
- makeAbsolute()#
- 返回类型::
bool
如果文件系统条目的路径是相对的,此方法将其转换为绝对路径并返回
true
;如果路径已经是绝对的,该方法返回false
。另请参阅
返回文件元数据最后更改的日期和时间,使用本地时间。
元数据更改发生在文件首次创建时,但每当用户写入或设置inode信息时(例如,更改文件权限)也会发生。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
此函数覆盖 qfileinfo::metadataChangeTime(const
QTimeZone
&tz),并返回与metadataChangeTime(QTimeZone::LocalTime)
相同的结果。返回文件元数据最后一次更改的日期时间。元数据更改发生在文件首次创建时,但每当用户写入或设置inode信息(例如,更改文件权限)时也会发生。
返回的时间使用
tz
指定的时区。例如,您可以使用LocalTime
或UTC
来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC
通常更快,因为它不需要进行转换。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
birthTime(const QTimeZone &)
lastModified(const QTimeZone &)
lastRead(const QTimeZone &)
FileTime time, const QTimeZone &)
如果此
QFileInfo
指的是一个与fileinfo
所指不同的文件系统条目,则返回true
;否则返回false
。另请参阅
operator==()
如果此
QFileInfo
和fileinfo
指的是文件系统上的相同条目,则返回true
;否则返回false
。请注意,比较两个空
QFileInfo
对象(不包含文件系统条目引用的路径,或为空路径)的结果是未定义的。警告
这不会比较指向相同目标的两个不同的符号链接。
警告
在 Windows 上,对于指向同一文件系统条目的长路径和短路径,会被视为指向不同的条目。
另请参阅
operator!=()
- owner()#
- 返回类型::
字符串
返回文件的拥有者。在文件没有拥有者或有错误发生的系统上,返回空字符串。
在 Unix 下,这个函数可能会耗费较长时间(大约以毫秒计)。在 Windows 上,除非启用了
NTFS 权限
检查,否则将返回空字符串。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- ownerId()#
- 返回类型::
int
返回文件拥有者的 ID。
在 Windows 和文件没有拥有者的系统上,此函数返回 ((uint) -2)。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- path()#
- 返回类型::
字符串
返回此
QFileInfo
指向的文件系统条目的路径,不包括条目的名称。备注
如果给定的
QFileInfo
包含以目录分隔符'/'
结尾的路径,则条目的名称部分被视为空。在这种情况下,该函数将返回整个路径。- permission(permissions)#
- 参数:
permissions –
Permission
的组合- 返回类型::
bool
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
测试文件权限。参数
permissions
可以是几种类型为 QFile::Permissions 的标志,通过按位或操作组合来检查权限组合。在不具备文件权限的系统上,此函数始终返回
true
。备注
在 Windows 上,如果在启用
NTFS permissions
检查之前,则结果可能不准确。示例
fi = QFileInfo("/tmp/archive.tar.gz") if fi.permission(QFile.WriteUser | QFile.ReadGroup): qWarning("I can change the file; my group can read the file") if fi.permission(QFile.WriteGroup | QFile.WriteOther): qWarning("The group or others can change the file")
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- permissions()#
- 返回类型::
组合
Permission
返回文件 QFile::Permissions 的完整按位或组合。
备注
在 Windows 上,如果在启用
NTFS permissions
检查之前,则结果可能不准确。如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
- readSymLink()#
- 返回类型::
字符串
读取符号链接引用的路径。
返回符号链接引用的原始路径,不解析相对于符号链接所在目录的相对路径。返回的字符串将只作为绝对路径,如果符号链接实际引用了它。如果对象不是符号链接,则返回空字符串。
- refresh()#
刷新指向此
QFileInfo
对象的文件系统条目的信息,即在下一次获取缓存的属性时,将从文件系统读取信息。- setCaching(on)#
- 参数:
on – bool
如果
enable
为 true,则启用文件信息的缓存。如果enable
为 false,则禁用缓存。启用缓存时,
QFileInfo
首次需要时从文件系统中读取文件信息,但一般不会在之后。默认启用缓存。
这是一个重载函数。
将此
QFileInfo
提供信息的文件系统条目的路径设置为目录dir
中的path
。如果
dir
具有相对路径,则QFileInfo也将具有相对路径。如果
path
是绝对路径,则将忽略由dir
指定的目录。另请参阅
- setFile(file)
- 参数:
file –
QFileDevice
这是一个重载函数。
将
QFileInfo
提供信息的文件设置为file
。如果
file
包含相对路径,QFileInfo
也将具有相对路径。另请参阅
- setFile(file)
- 参数:
file – str
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将此
QFileInfo
提供信息的文件系统条目的路径设置为可以是绝对路径或相对路径的path
。在Unix上,绝对路径以目录分隔符
'/'
开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/
)。相对路径以目录名称或常规文件名称开头,并指定相对当前工作目录的文件系统条目路径。
示例
info = QFileInfo("/usr/bin/env") path = info.absolutePath() # path = /usr/bin base = info.baseName() # base = env info.setFile("/etc/hosts") path = info.absolutePath() # path = /etc base = info.baseName() # base = hosts
- size()#
- 返回类型::
int
返回文件的大小(字节)。如果文件不存在或无法获取,则返回0。
如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。
另请参阅
- stat()#
读取文件系统的所有属性。
当收集有关文件系统的信息时,在实际视图中使用缓存
QFileInfo
实例很有用。另请参阅
- suffix()#
- 返回类型::
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回文件的扩展名。
扩展名由文件中最后一个‘.’之后的全部字符组成。
示例
fi = QFileInfo("/tmp/archive.tar.gz") ext = fi.suffix() # ext = "gz"
文件扩展名在所有平台上计算相同,与文件命名规则无关(例如,Unix上的“.bashrc”有一个空的名称,扩展名为“bashrc”)。
与
other
交换文件信息。此函数运行非常快且从不失败。- symLinkTarget()#
- 返回类型::
字符串
返回指向文件或目录的符号链接的绝对路径,如果对象不是符号链接,则返回空字符串。
此名称可能不表示一个存在的文件,它只是一个字符串。