PySide6.QtCore.QFileInfo¶
- class QFileInfo¶
QFileInfo
类提供了一个与操作系统无关的API,用于检索文件系统条目的信息。更多…概要¶
方法¶
def
__init__()
def
__reduce__()
def
absoluteDir()
def
absolutePath()
def
baseName()
def
birthTime()
def
bundleName()
def
caching()
def
canonicalPath()
def
completeSuffix()
def
dir()
def
exists()
def
fileName()
def
filePath()
def
fileTime()
def
group()
def
groupId()
def
isAbsolute()
def
isAlias()
def
isBundle()
def
isDir()
def
isExecutable()
def
isFile()
def
isHidden()
def
isJunction()
def
isNativePath()
def
isReadable()
def
isRelative()
def
isRoot()
def
isShortcut()
def
isSymLink()
def
isSymbolicLink()
def
isWritable()
def
junctionTarget()
def
lastModified()
def
lastRead()
def
makeAbsolute()
def
__ne__()
def
__eq__()
def
owner()
def
ownerId()
def
path()
def
permission()
def
permissions()
def
readSymLink()
def
refresh()
def
setCaching()
def
setFile()
def
size()
def
stat()
def
suffix()
def
swap()
def
symLinkTarget()
静态函数¶
def
exists()
注意
本文档可能包含从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()
函数在单个语句中检查权限和所有权。符号链接和快捷方式¶
在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
增加和减少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时有一些限制:
可能需要通过提示用户使用QFileDialog来获取访问权限,该对话框实现了Android的原生文件选择器。
旨在遵循Scoped storage指南,例如使用应用程序特定目录而不是其他公共外部目录。有关更多信息,请参阅storage best practices。
由于Qt API的设计(例如
QFile
),无法将后者API与Android的MediaStore API完全集成。
- __init__()¶
构造一个空的
QFileInfo
对象,该对象不引用任何文件系统条目。另请参阅
- __init__(file)
- Parameters:
文件 –
QFileDevice
构造一个新的
QFileInfo
,提供关于文件file
的信息。如果
file
具有相对路径,则QFileInfo
也将具有相对路径。另请参阅
- __init__(fileinfo)
- Parameters:
fileinfo –
QFileInfo
构造一个新的
QFileInfo
,它是给定fileinfo
的副本。- __init__(file)
- Parameters:
文件 – str
构造一个
QFileInfo
,提供关于位于path
的文件系统条目的信息,该路径可以是绝对路径或相对路径。如果
path
是相对的,QFileInfo
也将具有相对路径。- __init__(dir, file)
- Parameters:
dir –
QDir
file – str
构造一个新的
QFileInfo
,它提供关于相对于目录dir
的给定文件系统条目path
的信息。如果
dir
有一个相对路径,QFileInfo
也会有一个相对路径。如果
path
是绝对路径,则dir
指定的目录将被忽略。另请参阅
- __reduce__()¶
- Return type:
字符串
警告
本节包含从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()
相比,符号链接或多余的“.”或“..”元素不一定被移除。- 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”)。
返回文件创建(出生)时的日期和时间,以本地时间为准。
如果文件的创建时间不可用,此函数将返回一个无效的
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()¶
- Return type:
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回包的名称。
在macOS和iOS上,如果路径
isBundle()
,则返回适当的本地化名称。在所有其他平台上,返回一个空的QString
。示例:
fi = QFileInfo("/Applications/Safari.app") bundle = fi.bundleName() # name = "Safari"
- caching()¶
- Return type:
布尔
如果启用了缓存,则返回
true
;否则返回false
。另请参阅
- canonicalFilePath()¶
- Return type:
字符串
返回文件系统条目的规范路径,包括条目的名称,即没有符号链接或冗余
'.'
或'..'
元素的绝对路径。如果条目不存在,canonicalFilePath() 返回一个空字符串。
- canonicalPath()¶
- Return type:
字符串
返回文件系统条目的规范路径(不包括条目的名称),即没有符号链接或多余的“.”或“..”元素的绝对路径。
如果条目不存在,此方法返回一个空字符串。
另请参阅
- 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"
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回一个
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
引用的文件系统条目的路径;路径可能是绝对路径或相对路径。返回由
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()¶
- Return type:
字符串
返回文件的组。在Windows上,在文件没有组的系统上,或者如果发生错误,则返回一个空字符串。
此函数在Unix下可能耗时较长(大约几毫秒)。
如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- groupId()¶
- Return type:
整数
返回文件所属组的ID。
在Windows和文件没有组的系统上,此函数始终返回(uint) -2。
如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- isAbsolute()¶
- Return type:
布尔
如果文件系统条目的路径是绝对的,则返回
true
,否则返回false
(即路径是相对的)。- isAlias()¶
- Return type:
布尔
如果此对象指向别名,则返回
true
;否则返回false
。别名仅在macOS上存在。它们被视为常规文件,因此打开别名将打开文件本身。为了打开别名引用的文件或目录,请使用
symLinkTarget()
。- 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
。如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- isRelative()¶
- Return type:
布尔
如果文件系统条目的路径是相对的,则返回
true
,否则返回false
(即路径是绝对的)。在Unix系统上,绝对路径以目录分隔符
'/'
开头。在Windows系统上,绝对路径以驱动器标识符开头(例如,D:/
)。- isRoot()¶
- Return type:
布尔
如果对象指向一个目录或指向一个目录的符号链接,并且该目录是根目录,则返回
true
;否则返回false
。- isShortcut()¶
- Return type:
布尔
如果此对象指向快捷方式,则返回
true
;否则返回false
。快捷方式仅存在于Windows上,通常是
.lnk
文件。例如,在Windows上,快捷方式(*.lnk
文件)将返回true,但在Unix(包括macOS和iOS)上将返回false。快捷方式 (.lnk) 文件被视为常规文件。打开这些文件将打开
.lnk
文件本身。为了打开快捷方式引用的文件,必须在快捷方式上使用symLinkTarget()
。注意
即使快捷方式(损坏的快捷方式)指向不存在的文件,isShortcut() 也会返回 true。
- isSymLink()¶
- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
如果此对象指向符号链接、快捷方式或别名,则返回
true
;否则返回false
。符号链接存在于Unix(包括macOS和iOS)和Windows上,通常分别由
ln -s
或mklink
命令创建。打开符号链接实际上是打开link's target
。此外,Windows上的快捷方式(
*.lnk
文件)和macOS上的别名将返回true。此行为已被弃用,并可能在未来的Qt版本中更改。打开快捷方式或别名将打开.lnk
或别名文件本身。示例:
info = QFileInfo(fileName) if info.isSymLink(): fileName = info.symLinkTarget()
- isSymbolicLink()¶
- Return type:
布尔
如果此对象指向符号链接,则返回
true
;否则返回false
。符号链接存在于Unix(包括macOS和iOS)和Windows(NTFS符号链接)上,通常分别由
ln -s
或mklink
命令创建。Unix 透明地处理符号链接。打开一个符号链接实际上会打开
link's target
。与
isSymLink()
不同,对于Windows上的快捷方式(*.lnk
文件)和macOS上的别名,将返回false。请改用isShortcut()
和isAlias()
。- isWritable()¶
- Return type:
布尔
如果用户可以写入此
QFileInfo
所引用的文件系统条目,则返回true
;否则返回false
。如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- junctionTarget()¶
- Return type:
字符串
解析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()¶
- Return type:
布尔
如果文件系统条目的路径是相对的,此方法会将其转换为绝对路径并返回
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
lhs
引用的文件系统条目与rhs
引用的不同,则返回true
;否则返回false
。另请参阅
operator==()
如果
QFileInfo
lhs
和QFileInfo
rhs
引用文件系统中的相同条目,则返回true
;否则返回false
。请注意,比较两个空的
QFileInfo
对象(不包含任何文件系统条目引用,即不存在的路径或空路径)的结果是未定义的。警告
这不会比较指向同一目标的两个不同符号链接。
警告
在Windows上,引用相同文件系统条目的长路径和短路径被视为引用不同的条目。
另请参阅
operator!=()
- owner()¶
- Return type:
字符串
返回文件的所有者。在文件没有所有者的系统上,或者如果发生错误,则返回一个空字符串。
此函数在Unix下可能耗时较长(大约几毫秒)。在Windows上,除非启用了
NTFS 权限
检查,否则它将返回一个空字符串。如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- ownerId()¶
- Return type:
整数
返回文件所有者的ID。
在Windows和文件没有所有者的系统上,此函数返回((uint) -2)。
如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- 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
检查,结果可能不准确。如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
- readSymLink()¶
- Return type:
字符串
读取符号链接引用的路径。
返回符号链接引用的原始路径,而不解析相对于包含符号链接的目录的相对路径。返回的字符串只有在符号链接实际引用为绝对路径时才会是绝对路径。如果对象不是符号链接,则返回空字符串。
- refresh()¶
刷新此
QFileInfo
引用的文件系统条目的信息,即在下一次获取缓存属性时从文件系统中读取信息。- setCaching(on)¶
- Parameters:
on – 布尔值
如果
enable
为 true,则启用文件信息的缓存。如果enable
为 false,则禁用缓存。当启用缓存时,
QFileInfo
会在第一次需要时从文件系统中读取文件信息,但通常之后不会再次读取。默认情况下,缓存是启用的。
- setFile(file)¶
- Parameters:
文件 –
QFileDevice
这是一个重载函数。
设置
QFileInfo
提供信息的文件为file
。如果
file
包含相对路径,QFileInfo
也将具有相对路径。另请参阅
- 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:
dir –
QDir
file – str
这是一个重载函数。
将此
QFileInfo
提供信息的文件系统条目的路径设置为目录dir
中的path
。如果
dir
有一个相对路径,QFileInfo
也会有一个相对路径。如果
path
是绝对路径,则dir
指定的目录将被忽略。另请参阅
- size()¶
- Return type:
整数
返回文件大小(以字节为单位)。如果文件不存在或无法获取,则返回0。
如果文件是一个符号链接,此函数返回关于目标的信息,而不是符号链接本身。
另请参阅
- stat()¶
从文件系统中读取所有属性。
当文件系统的信息在工作线程中收集,然后以缓存
QFileInfo
实例的形式传递给UI时,这非常有用。另请参阅
- suffix()¶
- Return type:
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回文件的后缀(扩展名)。
后缀由文件中最后一个“.”之后(但不包括)的所有字符组成。
示例:
fi = QFileInfo("/tmp/archive.tar.gz") ext = fi.suffix() # ext = "gz"
文件的后缀在所有平台上都是相同的计算方式,与文件命名约定无关(例如,在Unix上,“.bashrc”的基础名称为空,后缀为“bashrc”)。
将此文件信息与
other
交换。此函数非常快且永远不会失败。- symLinkTarget()¶
- Return type:
字符串
返回符号链接指向的文件或目录的绝对路径,如果对象不是符号链接,则返回空字符串。
此名称可能不代表现有文件;它只是一个字符串。