class QFileInfo#

QFileInfo 类提供了一个与操作系统无关的 API,用于检索文件系统条目的信息。 更多

概述#

方法#

静态函数#

备注

本文档可能包含从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() 函数在单个语句中检查权限和所有权。

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时有一些限制。

  • 可能需要通过实现Android的本地文件选择器Android的用户文件选择器的QFileDialog来提示用户访问权限。

  • 尽量遵循范围存储指南,例如使用特定应用的目录而不是其他公开的外部目录。有关更多信息,请参阅存储最佳实践

  • 由于Qt API的设计(例如QFile),不能完全将这些API与Android的媒体存储API集成。

另请参阅

QDirQFile

__init__(dir, file)#
参数:
  • dirQDir

  • file – str

创建一个新的QFileInfo对象,该对象提供有关相对于目录dir的给定文件系统条目path的信息。

如果dir具有相对路径,则QFileInfo也将具有相对路径。

如果path是绝对路径,则将忽略由dir指定的目录。

__init__()

构造一个空的 QFileInfo 对象,该对象不指向任何文件系统条目。

另请参阅

setFile()

__init__(file)
参数:

file – str

构造一个 QFileInfo 对象,该对象提供位于路径 path 的文件系统条目的信息,可以是绝对路径也可以是相对路径。

如果 path 是相对路径,那么 QFileInfo 也将包含一个相对路径。

__init__(file)
参数:

fileQFileDevice

构造一个新 QFileInfo 对象,该对象提供关于文件 file 的信息。

如果文件 file 的路径是相对的,那么 QFileInfo 也将包含一个相对路径。

另请参阅

isRelative()

__init__(fileinfo)
参数:

fileinfoQFileInfo

构造一个新的 QFileInfo 对象,它是给定 fileinfo 的副本。

__reduce__()#
返回类型::

对象

absoluteDir()#
返回类型::

QDir

警告

本节包含从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()相比,符号链接或多余的“.”或“..”元素不一定被删除。

警告

如果filePath()为空,则此函数的行为是未定义的。

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”)。

birthTime()#
返回类型::

QDateTime

返回文件创建(出生)时的日期和时间(本地时间)。

如果文件创建时间不可用,则此函数返回无效的 QDateTime

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

此函数重载 QFileInfo::birthTime(const QTimeZone &tz) ,并返回与 birthTime(QTimeZone::LocalTime) 相同的结果。

birthTime(tz)
参数:

tzQTimeZone

返回类型::

QDateTime

返回文件创建(出生)时的日期和时间。

返回的时间使用tz指定的时区。例如,您可以使用LocalTimeUTC来得到本地时区的本地时间或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

另请参阅

setCaching() refresh()

canonicalFilePath()#
返回类型::

字符串

返回文件系统条目的规范路径,包括条目的名称,即没有符号链接或冗余的'.''..'元素的绝对路径。

如果条目不存在,则canonicalFilePath()返回一个空字符串。

canonicalPath()#
返回类型::

字符串

返回文件系统条目的规范路径(不包括条目的名称),即不含符号链接的绝对路径,也不含多余的“.”或“..”元素。

如果条目不存在,此方法返回空字符串。

另请参阅

path() absolutePath()

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"
dir()#
返回类型::

QDir

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

返回一个代表此QFileInfo 指向的文件系统条目的父目录路径的 QDir 对象。

备注

QDir 返回的对象始终对应于对象的父目录,即使 QFileInfo 表示一个目录。

对于以下每个,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"

备注

如果此QFileInfo给定的路径以目录分隔符'/'结尾,则条目的名称部分被视为空。

filePath()#
返回类型::

字符串

返回该QFileInfo对象所引用文件系统条目的路径;路径可能是绝对路径或相对路径。

fileTime(time)#
参数:

timeFileTime

返回类型::

QDateTime

返回由time指定的文件时间。

如果无法确定时间,则返回一个无效的日期时间。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

此函数重载了FileTime, const QTimeZone &),并返回与fileTime(time, QTimeZone::LocalTime)相同的值。

fileTime(time, tz)
参数:
返回类型::

QDateTime

返回由time指定的文件时间。

返回的时间使用tz指定的时区。例如,您可以使用LocalTimeUTC来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC通常更快,因为它不需要进行转换。

如果无法确定时间,则返回一个无效的日期时间。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

birthTime(const QTimeZone &) lastModified(const QTimeZone &) lastRead(const QTimeZone &) metadataChangeTime(const QTimeZone &) isValid()

group()#
返回类型::

字符串

返回文件的组。在Windows上,在文件没有组的系统上,或者在出现错误的情况下,返回空字符串。

在Unix系统中,此函数可能耗时要花费时间(数量级为毫秒)。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

groupId() owner() ownerId()

groupId()#
返回类型::

int

返回文件所属组的id。

在Windows上和在文件没有组的系统上,此函数始终返回(uint)-2。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

group() owner() ownerId()

isAbsolute()#
返回类型::

bool

如果文件系统条目的路径是绝对的,则返回true,否则返回false(即路径是相对的)。

备注

以冒号 (:) 开头的路径始终被认为是绝对的,因为它们表示一个 QResource

另请参阅

isRelative()

isAlias()#
返回类型::

bool

如果此对象指向一个别名,则返回true;否则返回false

别名只存在于macOS上。它们被视为常规文件,因此打开别名将打开该文件本身。要打开别名引用的文件或目录,请使用symLinkTarget() .

备注

即使在别名指向不存在文件的情况下,isAlias()返回true。

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

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

备注

如果没有启用 NTFS 权限 检查,则在Windows上的结果将只反映条目是否存在。

isRelative()#
返回类型::

bool

如果文件系统条目的路径是相对的,则返回 true,否则返回 false(即路径是绝对的)。

在Unix上,绝对路径以目录分隔符 '/' 开头。在Windows上,绝对路径以驱动器指定符开头(例如,D:/)。

备注

以冒号 (:) 开头的路径始终被认为是绝对的,因为它们表示一个 QResource

另请参阅

isAbsolute()

isRoot()#
返回类型::

bool

如果对象指向目录或指向目录的符号链接,且该目录是根目录,则返回 true;否则返回 false

isShortcut()#
返回类型::

bool

如果此对象指向快捷方式,则返回true;否则返回false

快捷方式仅在Windows上存在,通常是.lnk文件。例如,在Windows上的快捷方式(*.lnk文件)将返回true,但在Unix(包括macOS和iOS)上将返回false。

快捷方式(.lnk)文件被视为常规文件。打开它们将打开.lnk文件本身。要打开快捷方式引用的文件,必须在快捷方式上使用symLinkTarget()

备注

即使快捷方式(损坏的快捷方式)指向不存在的文件,isShortcut()也返回true。

返回类型::

bool

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

如果此对象指向符号链接、快捷方式或别名,则返回true;否则返回false

符号链接存在于Unix(包括macOS和iOS)和Windows上,通常是通过ln -smklink 命令创建的。打开符号链接实际上会打开链接的目标

此外,在Windows上,对于快捷方式(.lnk文件),以及在macOS上的别名,将返回true。此行为已弃用,并且在Qt的未来版本中可能会发生变化。打开快捷方式或别名将打开.lnk或别名文件本身。

示例

info = QFileInfo(fileName)
if info.isSymLink():
    fileName = info.symLinkTarget()

备注

exists()如果符号链接指向现有目标,则返回true,否则返回false

返回类型::

bool

如果此对象指向符号链接,则返回true;否则返回false

符号链接存在于Unix(包括macOS和iOS)和Windows(NTFS符号链接)上,通常通过ln -smklink命令来创建。

Unix对符号链接的处理是透明的。打开一个符号链接实际上是打开链接的目标

isSymLink()不同,在Windows上对快捷方式(*.lnk文件)和macOS上的别名返回将是false。请使用isShortcut()isAlias()代替。

备注

exists()如果符号链接指向现有目标,则返回true,否则返回false

isWritable()#
返回类型::

bool

如果用户可以写入此QFileInfo引用的文件系统条目,则返回true;否则返回false

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

备注

如果没有启用NTFS 权限检查,Windows上的结果仅反映条目是否标记为只读。

junctionTarget()#
返回类型::

字符串

将NTFS连接解析为目标路径。

返回NTFS连接指向的目录的绝对路径,或者如果对象不是NTFS连接,则返回空字符串。

不能保证由NTFS连接命名的目录实际上存在。

lastModified()#
返回类型::

QDateTime

返回文件最后修改的日期和时间。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

此函数重载了 lastModified(const QTimeZone &) 并返回与 lastModified(QTimeZone::LocalTime) 相同的结果。

lastModified(tz)
参数:

tzQTimeZone

返回类型::

QDateTime

返回文件最后修改的日期和时间。

返回的时间使用tz指定的时区。例如,您可以使用LocalTimeUTC来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC通常更快,因为它不需要进行转换。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

birthTime(const QTimeZone &) lastRead(const QTimeZone &) metadataChangeTime(const QTimeZone &) FileTime, const QTimeZone &)

lastRead()#
返回类型::

QDateTime

返回文件上次被读取(访问)的日期和时间。

在不支持此信息的平台上,返回与 lastModified() 相同的时间。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

此函数重载 lastRead(const QTimeZone &) 并返回与 lastRead(QTimeZone::LocalTime) 相同的结果。

lastRead(tz)
参数:

tzQTimeZone

返回类型::

QDateTime

返回文件上次被读取(访问)的日期和时间。

返回的时间使用tz指定的时区。例如,您可以使用LocalTimeUTC来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC通常更快,因为它不需要进行转换。

在不支持此信息的平台上,返回与 lastModified() 相同的时间。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

birthTime(const QTimeZone &) lastModified(const QTimeZone &) metadataChangeTime(const QTimeZone &) FileTime, const QTimeZone &)

makeAbsolute()#
返回类型::

bool

如果文件系统条目的路径是相对的,此方法将其转换为绝对路径并返回 true;如果路径已经是绝对的,该方法返回 false

另请参阅

filePath() isRelative()

metadataChangeTime()#
返回类型::

QDateTime

返回文件元数据最后更改的日期和时间,使用本地时间。

元数据更改发生在文件首次创建时,但每当用户写入或设置inode信息时(例如,更改文件权限)也会发生。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

此函数覆盖 qfileinfo::metadataChangeTime(const QTimeZone &tz),并返回与 metadataChangeTime(QTimeZone::LocalTime) 相同的结果。

metadataChangeTime(tz)
参数:

tzQTimeZone

返回类型::

QDateTime

返回文件元数据最后一次更改的日期时间。元数据更改发生在文件首次创建时,但每当用户写入或设置inode信息(例如,更改文件权限)时也会发生。

返回的时间使用tz指定的时区。例如,您可以使用LocalTimeUTC来得到本地时区的本地时间或UTC。由于原生的文件系统API通常使用UTC,使用UTC通常更快,因为它不需要进行转换。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

birthTime(const QTimeZone &) lastModified(const QTimeZone &) lastRead(const QTimeZone &) FileTime time, const QTimeZone &)

__ne__(fileinfo)#
参数:

fileinfoQFileInfo

返回类型::

bool

如果此 QFileInfo 指的是一个与 fileinfo 所指不同的文件系统条目,则返回 true;否则返回 false

另请参阅

operator==()

__eq__(fileinfo)#
参数:

fileinfoQFileInfo

返回类型::

bool

如果此 QFileInfofileinfo 指的是文件系统上的相同条目,则返回 true;否则返回 false

请注意,比较两个空 QFileInfo 对象(不包含文件系统条目引用的路径,或为空路径)的结果是未定义的。

警告

这不会比较指向相同目标的两个不同的符号链接。

警告

在 Windows 上,对于指向同一文件系统条目的长路径和短路径,会被视为指向不同的条目。

另请参阅

operator!=()

owner()#
返回类型::

字符串

返回文件的拥有者。在文件没有拥有者或有错误发生的系统上,返回空字符串。

在 Unix 下,这个函数可能会耗费较长时间(大约以毫秒计)。在 Windows 上,除非启用了 NTFS 权限 检查,否则将返回空字符串。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

ownerId() group() groupId()

ownerId()#
返回类型::

int

返回文件拥有者的 ID。

在 Windows 和文件没有拥有者的系统上,此函数返回 ((uint) -2)。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

owner() group() groupId()

path()#
返回类型::

字符串

返回此 QFileInfo 指向的文件系统条目的路径,不包括条目的名称。

备注

如果给定的 QFileInfo 包含以目录分隔符 '/' 结尾的路径,则条目的名称部分被视为空。在这种情况下,该函数将返回整个路径。

permission(permissions)#
参数:

permissionsPermission 的组合

返回类型::

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 检查之前,则结果可能不准确。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

返回类型::

字符串

读取符号链接引用的路径。

返回符号链接引用的原始路径,不解析相对于符号链接所在目录的相对路径。返回的字符串将只作为绝对路径,如果符号链接实际引用了它。如果对象不是符号链接,则返回空字符串。

refresh()#

刷新指向此 QFileInfo 对象的文件系统条目的信息,即在下一次获取缓存的属性时,将从文件系统读取信息。

setCaching(on)#
参数:

on – bool

如果 enable 为 true,则启用文件信息的缓存。如果 enable 为 false,则禁用缓存。

启用缓存时,QFileInfo 首次需要时从文件系统中读取文件信息,但一般不会在之后。

默认启用缓存。

另请参阅

refresh() caching()

setFile(dir, file)#
参数:
  • dirQDir

  • file – str

这是一个重载函数。

将此 QFileInfo 提供信息的文件系统条目的路径设置为目录 dir 中的 path

如果dir具有相对路径,则QFileInfo也将具有相对路径。

如果path是绝对路径,则将忽略由dir指定的目录。

setFile(file)
参数:

fileQFileDevice

这是一个重载函数。

QFileInfo 提供信息的文件设置为 file

如果 file 包含相对路径,QFileInfo 也将具有相对路径。

另请参阅

isRelative()

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。

如果文件是符号链接,此函数返回有关目标的信息,而不是符号链接本身。

另请参阅

exists()

stat()#

读取文件系统的所有属性。

当收集有关文件系统的信息时,在实际视图中使用缓存 QFileInfo 实例很有用。

另请参阅

setCaching() refresh()

suffix()#
返回类型::

字符串

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

返回文件的扩展名。

扩展名由文件中最后一个‘.’之后的全部字符组成。

示例

fi = QFileInfo("/tmp/archive.tar.gz")
ext = fi.suffix() # ext = "gz"

文件扩展名在所有平台上计算相同,与文件命名规则无关(例如,Unix上的“.bashrc”有一个空的名称,扩展名为“bashrc”)。

swap(other)#
参数:

otherQFileInfo

other交换文件信息。此函数运行非常快且从不失败。

symLinkTarget()#
返回类型::

字符串

返回指向文件或目录的符号链接的绝对路径,如果对象不是符号链接,则返回空字符串。

此名称可能不表示一个存在的文件,它只是一个字符串。

备注

exists()如果符号链接指向现有目标,则返回true,否则返回false