PySide6.QtCore.QFileInfo

class QFileInfo

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

概要

方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

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

QFileInfo 提供了关于文件系统条目的信息,例如其名称、路径、访问权限以及它是常规文件、目录还是符号链接。条目的大小和最后修改/读取时间也可用。QFileInfo 还可以用于获取关于 Qt resource 的信息。

一个 QFileInfo 可以指向具有绝对路径或相对路径的文件系统条目:

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

  • 相对路径以目录名或常规文件名开头,并指定文件系统条目相对于当前工作目录的路径。

绝对路径的一个例子是字符串 "/tmp/quartz"。相对路径可能看起来像 "src/fatlib"。你可以使用函数 isRelative() 来检查 QFileInfo 是否使用相对路径或绝对路径。你可以调用函数 makeAbsolute() 将相对路径的 QFileInfo 转换为绝对路径。

注意

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

QFileInfo 所操作的文件系统入口路径在构造函数中设置,或者稍后使用 setFile() 设置。使用 exists() 来查看该入口是否实际存在,并使用 size() 来获取其大小。

文件系统条目的类型通过 isFile()isDir()isSymLink() 获取。symLinkTarget() 函数提供了符号链接指向的目标的绝对路径。

文件系统条目的路径元素可以使用path()fileName()提取。fileName()的部分可以使用baseName()suffix()completeSuffix()提取。由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增加和减少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

性能考虑

一些QFileInfo的函数需要查询文件系统,但出于性能考虑,有些函数仅对路径字符串进行操作。例如:要返回相对路径条目的绝对路径,absolutePath()需要查询文件系统。然而,path()函数可以直接在文件名上工作,因此速度更快。

QFileInfo 还会缓存它引用的文件系统条目的信息。由于文件系统可能会被其他用户或程序,甚至是同一程序的其他部分更改,因此有一个函数可以刷新存储在 QFileInfo 中的信息,即 refresh()。要关闭 QFileInfo 的缓存(即强制它在每次请求信息时查询底层文件系统),请调用 setCaching (false)。

从文件系统中获取信息通常通过调用(可能)昂贵的系统函数来完成,因此QFileInfo(取决于实现)在构造时可能不会从文件系统中获取所有信息。为了确保立即从文件系统中读取所有信息,请使用stat()成员函数。

birthTime()fileTime()lastModified()lastRead()metadataChangeTime()默认返回本地时间。由于原生文件系统API通常使用UTC,这需要进行转换。如果你实际上不需要本地时间,你可以通过直接请求UTC时间来避免这种情况。

平台特定问题

在Android上,处理内容URI时有一些限制:

另请参阅

QDir QFile

__init__()

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

另请参阅

setFile()

__init__(file)
Parameters:

文件QFileDevice

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

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

另请参阅

isRelative()

__init__(fileinfo)
Parameters:

fileinfoQFileInfo

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

__init__(file)
Parameters:

文件 – str

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

如果 path 是相对的,QFileInfo 也将具有相对路径。

__init__(dir, file)
Parameters:
  • dirQDir

  • file – str

构造一个新的QFileInfo,它提供关于相对于目录dir的给定文件系统条目path的信息。

如果 dir 有一个相对路径,QFileInfo 也会有一个相对路径。

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

另请参阅

isRelative()

__reduce__()
Return type:

字符串

absoluteDir()
Return type:

QDir

警告

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

返回一个QDir对象,表示此QFileInfo所引用的文件系统条目的父目录的绝对路径。

# 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()
Return type:

字符串

警告

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

返回此QFileInfo引用的文件系统条目的绝对完整路径,包括条目的名称。

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

在Windows上,未映射到驱动器号的网络共享路径以//sharename/开头。

QFileInfo 会将驱动器字母大写。请注意,QDir 不会这样做。下面的代码片段展示了这一点。

fi = QFileInfo("c:/temp/foo")
print(fi.absoluteFilePath() # "C:/temp/foo")

此函数返回与filePath()相同的内容,除非isRelative()为真。与canonicalFilePath()相比,符号链接或多余的“.”或“..”元素不一定被移除。

警告

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

absolutePath()
Return type:

字符串

返回此QFileInfo引用的文件系统条目的绝对路径,不包括条目的名称。

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

在Windows上,未映射到驱动器号的网络共享路径以//sharename/开头。

canonicalPath()不同,符号链接或冗余的“.”或“..”元素不一定被移除。

警告

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

baseName()
Return type:

字符串

警告

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

返回不带路径的文件基本名称。

基本名称由文件中所有字符组成,直到(但不包括)第一个‘.’字符。

示例:

fi = QFileInfo("/tmp/archive.tar.gz")
base = fi.baseName() # base = "archive"

文件的基本名称在所有平台上都是相同的计算方式,不受文件命名约定的影响(例如,在Unix上,“.bashrc”的基本名称为空,后缀为“bashrc”)。

birthTime()
Return type:

QDateTime

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

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

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

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

birthTime(tz)
Parameters:

时区QTimeZone

Return type:

QDateTime

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

返回的时间位于由tz指定的时区。例如,您可以使用LocalTimeUTC分别获取本地时区或UTC的时间。由于原生文件系统API通常使用UTC,使用UTC通常更快,因为它不需要任何转换。

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

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

另请参阅

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

bundleName()
Return type:

字符串

警告

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

返回包的名称。

在macOS和iOS上,如果路径isBundle(),则返回适当的本地化名称。在所有其他平台上,返回一个空的QString

示例:

fi = QFileInfo("/Applications/Safari.app")
bundle = fi.bundleName() # name = "Safari"
caching()
Return type:

布尔

如果启用了缓存,则返回true;否则返回false

另请参阅

setCaching() refresh()

canonicalFilePath()
Return type:

字符串

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

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

canonicalPath()
Return type:

字符串

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

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

另请参阅

path() absolutePath()

completeBaseName()
Return type:

字符串

警告

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

返回文件的完整基本名称,不包括路径。

完整的基本名称由文件中所有字符组成,直到(但不包括)最后一个‘.’字符。

示例:

fi = QFileInfo("/tmp/archive.tar.gz")
base = fi.completeBaseName() # base = "archive.tar"
completeSuffix()
Return type:

字符串

警告

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

返回文件的完整后缀(扩展名)。

完整的后缀由文件中第一个“.”之后(但不包括)的所有字符组成。

示例:

fi = QFileInfo("/tmp/archive.tar.gz")
ext = fi.completeSuffix() # ext = "tar.gz"
dir()
Return type:

QDir

警告

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

返回一个QDir对象,表示此QFileInfo所引用的文件系统条目的父目录路径。

注意

返回的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()
Return type:

布尔

如果此QFileInfo引用的文件系统条目存在,则返回true;否则返回false

注意

如果条目是一个指向不存在的目标的符号链接,此方法返回 false

static exists(file)
Parameters:

文件 – str

Return type:

布尔

如果文件系统条目 path 存在,则返回 true;否则返回 false

注意

如果 path 是一个指向不存在的目标的符号链接,此方法返回 false

注意

使用此函数比使用QFileInfo(path).exists()进行文件系统访问更快。

fileName()
Return type:

字符串

警告

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

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

示例:

fi = QFileInfo("/tmp/archive.tar.gz")
name = fi.fileName() # name = "archive.tar.gz"

注意

如果这个QFileInfo被赋予了一个以目录分隔符'/'结尾的路径,则该条目的名称部分被视为空。

filePath()
Return type:

字符串

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

fileTime(time)
Parameters:

时间FileTime

Return type:

QDateTime

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

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

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

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

fileTime(time, tz)
Parameters:
Return type:

QDateTime

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

返回的时间位于由tz指定的时区。例如,您可以使用LocalTimeUTC分别获取本地时区或UTC的时间。由于原生文件系统API通常使用UTC,使用UTC通常更快,因为它不需要任何转换。

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

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

另请参阅

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

group()
Return type:

字符串

返回文件的组。在Windows上,在文件没有组的系统上,或者如果发生错误,则返回一个空字符串。

此函数在Unix下可能耗时较长(大约几毫秒)。

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

另请参阅

groupId() owner() ownerId()

groupId()
Return type:

整数

返回文件所属组的ID。

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

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

另请参阅

group() owner() ownerId()

isAbsolute()
Return type:

布尔

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

注意

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

另请参阅

isRelative()

isAlias()
Return type:

布尔

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

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

注意

即使别名指向一个不存在的文件,isAlias() 也会返回 true。

isBundle()
Return type:

布尔

如果此对象指向macOS和iOS上的bundle或bundle的符号链接,则返回true;否则返回false

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

isDir()
Return type:

布尔

如果此对象指向一个目录或指向一个目录的符号链接,则返回true。如果对象指向的不是目录(例如文件)或不存在,则返回false

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

isExecutable()
Return type:

布尔

如果此QFileInfo引用的文件系统条目是可执行的,则返回true;否则返回false

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

isFile()
Return type:

布尔

如果此对象指向文件或指向文件的符号链接,则返回true。如果对象指向的不是文件(例如目录)或不存在的内容,则返回false

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

isHidden()
Return type:

布尔

如果此QFileInfo引用的文件系统条目是`隐藏的`,则返回true;否则返回false

注意

此函数对于Unix上的特殊条目“.”和“..”返回true,即使entryList将它们视为显示的那样。请注意,由于此函数检查文件名,在Unix上,如果此文件是符号链接,它将检查符号链接的名称,而不是目标文件的名称。

在Windows上,如果目标文件是隐藏的(不是符号链接),此函数返回true

isJunction()
Return type:

布尔

如果对象指向一个连接点,则返回true;否则返回false

连接点仅存在于Windows的NTFS文件系统上,通常由mklink命令创建。它们可以被视为目录的符号链接,并且只能为本地卷上的绝对路径创建。

isNativePath()
Return type:

布尔

如果文件路径可以直接与原生API一起使用,则返回true。如果文件由Qt内部的虚拟文件系统(如Qt资源系统)支持,则返回false

注意

本地路径可能仍需要转换路径分隔符和字符编码,具体取决于平台和本地API的输入要求。

isReadable()
Return type:

布尔

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

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

注意

如果未启用NTFS permissions检查,Windows上的结果将仅反映条目是否存在。

isRelative()
Return type:

布尔

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

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

注意

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

另请参阅

isAbsolute()

isRoot()
Return type:

布尔

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

isShortcut()
Return type:

布尔

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

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

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

注意

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

Return type:

布尔

警告

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

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

符号链接存在于Unix(包括macOS和iOS)和Windows上,通常分别由ln -smklink命令创建。打开符号链接实际上是打开link's target

此外,Windows上的快捷方式(*.lnk 文件)和macOS上的别名将返回true。此行为已被弃用,并可能在未来的Qt版本中更改。打开快捷方式或别名将打开.lnk 或别名文件本身。

示例:

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

注意

exists() 如果符号链接指向一个存在的目标,则返回 true,否则返回 false

Return type:

布尔

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

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

Unix 透明地处理符号链接。打开一个符号链接实际上会打开 link's target

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

注意

exists() 如果符号链接指向一个存在的目标,则返回 true,否则返回 false

isWritable()
Return type:

布尔

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

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

注意

如果未启用NTFS permissions检查,Windows上的结果将仅反映条目是否标记为只读。

junctionTarget()
Return type:

字符串

解析NTFS连接点到其引用的路径。

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

无法保证由NTFS连接点命名的目录实际存在。

lastModified()
Return type:

QDateTime

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

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

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

lastModified(tz)
Parameters:

时区QTimeZone

Return type:

QDateTime

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

返回的时间位于由tz指定的时区。例如,您可以使用LocalTimeUTC分别获取本地时区或UTC的时间。由于原生文件系统API通常使用UTC,使用UTC通常更快,因为它不需要任何转换。

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

另请参阅

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

lastRead()
Return type:

QDateTime

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

在无法获取此信息的平台上,返回与lastModified()相同的时间。

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

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

lastRead(tz)
Parameters:

时区QTimeZone

Return type:

QDateTime

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

返回的时间位于由tz指定的时区。例如,您可以使用LocalTimeUTC分别获取本地时区或UTC的时间。由于原生文件系统API通常使用UTC,使用UTC通常更快,因为它不需要任何转换。

在无法获取此信息的平台上,返回与lastModified()相同的时间。

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

另请参阅

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

makeAbsolute()
Return type:

布尔

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

另请参阅

filePath() isRelative()

metadataChangeTime()
Return type:

QDateTime

返回文件元数据上次更改的日期和时间,以本地时间为准。

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

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

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

metadataChangeTime(tz)
Parameters:

时区QTimeZone

Return type:

QDateTime

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

返回的时间位于由tz指定的时区。例如,您可以使用LocalTimeUTC分别获取本地时区或UTC的时间。由于原生文件系统API通常使用UTC,使用UTC通常更快,因为它不需要任何转换。

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

另请参阅

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

__ne__(rhs)
Parameters:

rhsQFileInfo

Return type:

布尔

如果QFileInfo lhs 引用的文件系统条目与 rhs 引用的不同,则返回 true;否则返回 false

另请参阅

operator==()

__eq__(rhs)
Parameters:

rhsQFileInfo

Return type:

布尔

如果 QFileInfo lhsQFileInfo rhs 引用文件系统中的相同条目,则返回 true;否则返回 false

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

警告

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

警告

在Windows上,引用相同文件系统条目的长路径和短路径被视为引用不同的条目。

另请参阅

operator!=()

owner()
Return type:

字符串

返回文件的所有者。在文件没有所有者的系统上,或者如果发生错误,则返回一个空字符串。

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

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

另请参阅

ownerId() group() groupId()

ownerId()
Return type:

整数

返回文件所有者的ID。

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

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

另请参阅

owner() group() groupId()

path()
Return type:

字符串

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

注意

如果这个QFileInfo被赋予了一个以目录分隔符'/'结尾的路径,条目的名称部分将被视为空。在这种情况下,此函数将返回整个路径。

permission(permissions)
Parameters:

权限Permission 的组合

Return type:

布尔

警告

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

测试文件权限。permissions 参数可以是多个 QFile::Permissions 类型的标志通过 OR 运算组合在一起,以检查权限组合。

在文件没有权限的系统上,此函数始终返回 true

注意

如果未启用NTFS 权限检查,结果在Windows上可能不准确。

示例:

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()
Return type:

Permission的组合

返回文件的完整 OR 组合的 QFile::Permissions。

注意

如果在Windows上未启用NTFS permissions检查,结果可能不准确。

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

Return type:

字符串

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

返回符号链接引用的原始路径,而不解析相对于包含符号链接的目录的相对路径。返回的字符串只有在符号链接实际引用为绝对路径时才会是绝对路径。如果对象不是符号链接,则返回空字符串。

refresh()

刷新此QFileInfo引用的文件系统条目的信息,即在下一次获取缓存属性时从文件系统中读取信息。

setCaching(on)
Parameters:

on – 布尔值

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

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

默认情况下,缓存是启用的。

另请参阅

refresh() caching()

setFile(file)
Parameters:

文件QFileDevice

这是一个重载函数。

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

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

另请参阅

isRelative()

setFile(file)
Parameters:

文件 – 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
setFile(dir, file)
Parameters:
  • dirQDir

  • file – str

这是一个重载函数。

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

如果 dir 有一个相对路径,QFileInfo 也会有一个相对路径。

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

另请参阅

isRelative()

size()
Return type:

整数

返回文件大小(以字节为单位)。如果文件不存在或无法获取,则返回0。

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

另请参阅

exists()

stat()

从文件系统中读取所有属性。

当文件系统的信息在工作线程中收集,然后以缓存QFileInfo实例的形式传递给UI时,这非常有用。

另请参阅

setCaching() refresh()

suffix()
Return type:

字符串

警告

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

返回文件的后缀(扩展名)。

后缀由文件中最后一个“.”之后(但不包括)的所有字符组成。

示例:

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

文件的后缀在所有平台上都是相同的计算方式,与文件命名约定无关(例如,在Unix上,“.bashrc”的基础名称为空,后缀为“bashrc”)。

swap(other)
Parameters:

其他QFileInfo

将此文件信息与 other 交换。此函数非常快且永远不会失败。

symLinkTarget()
Return type:

字符串

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

此名称可能不代表现有文件;它只是一个字符串。

注意

exists() 如果符号链接指向一个存在的目标,则返回 true,否则返回 false