Qt:QFileInfo
0、说明
QFileInfo提供了独立于系统的文件信息。
QFileInfo提供的信息包括文件名、路径、访问权限、文件大小、修改时间等。此外,它也可以用于获取有关Qt 资源的信息(resource)。
1)路径
QFileInfo指向的文件可以是绝对路径、相对路径任何一种,用isRelative()就可以加以判断,用makeAbsolute()将一个相对QFileInfo路径转换为绝对路径。
注意,以冒号":"开头的路径是绝对路径,标识一个QResource。
2)构造、检查
QFileInfo指代的文件通过①构造函数、②setFile() 指明,调用exists()检查这个文件是否存在,调用size()获取它的大小。
文件类型通过isFile(), isDir() 和 isSymLink()进行判断,symLinkTarget()函数则将逻辑链接替换为真实文件名。
3)元素提取
①路径
文件路径中的元素可以通过path() 和 fileName()进行提取,其中fileName()部分可以通过baseName(), suffix() 和 completeSuffix()三种方式进行提取。
②日期
文件日期可以通过birthTime(), lastModified(), lastRead() 和 fileTime()进行获取。
③权限
isReadable(), isWritable() and isExecutable()
④所有权
owner(), ownerId(), group() and groupId()
③和④可以综合起来,通过permission()进行测试。
4)函数效率
absolutePath()通过查询文件系统获取绝对路径;
path()直接作用于文件名上。
所以后者比前者更快。
5)刷新
文件可能会被程序修改,此时它的QFileInfo可能会发生改变,可以用refresh()来刷新。
1、模块和加载项
Header: | #include <QFileInfo> |
qmake: | QT += core |
2、构造
QFileInfo(QFileInfo fileinfo) | |
QFileInfo(QDir dir, QString file) | 构造一个在指定目录dir下的文件file的QFileInfo |
QFileInfo(QFile file) | |
QFileInfo(QString file) | |
QFileInfo() |
3、静态方法
4、实例方法
返回值类型 |
方法 |
说明 |
QFileInfo & bool bool |
operator=(QFileInfo fileinfo) operator!=(QFileInfo fileinfo) operator==(QFileInfo fileinfo) |
赋值
|
QDir | absoluteDir() | 返回该File的绝对路径的QDir |
QString | absoluteFilePath() | 包含文件名的绝对路径 |
absolutePath() | 不包含文件名的绝对路径(当前目录的绝对路径) | |
baseName() | 文件名,不含后缀 | |
QDateTime | birthTime() | 创建时间 |
QString | bundleName() | bundle name,多用于手机APP |
bool | caching() | 是否启用了caching |
QString | canonicalFilePath() | 规格化文件路径 |
canonicalPath() | 规格化当前目录路径 | |
completeBaseName() | 除了最后一个后缀外的文件名 | |
completeSuffix() | 完整后缀 | |
QDir | dir() | 该文件所在目录的QDir对象 |
bool | exists() | 路径文件是否存在 |
QString | fileName() | 完整文件名,包含完整后缀 |
QString | filePath() | 完整文件路径(可能是绝对,也可能是相对) |
QDateTime | fileTime(QFile::FileTime time) |
返回指定的文件时间。 文件时间有多种,修改时间、创建时间等 |
QString | group() | file所在的group |
uint | groupId() | file所在的group id |
bool | isAbsolute() | 一些文件属性的判断 |
isBundle() | ||
isDir() | ||
isExecutable() | ||
isFile() | ||
isHidden() | ||
isJunction() | ||
isNativePath() | ||
isReadable() | ||
isRelative() | ||
isRoot() | ||
isShortcut() | ||
isSymLink() | ||
isSymbolicLink() | ||
isWritable() | ||
QDateTime | lastModified() | 上次修改时间 |
lastRead() | 上次访问时间 | |
bool | makeAbsolute() | 将文件路径转化为绝对路径,true说明转化成功,false说明已经是绝对路径了 |
QDateTime | metadataChangeTime() | 文件元数据修改时间 |
QString | owner() | 文件所有者 |
uint | ownerId() | 所有者ID |
QString | path() | 返回所在目录路径,不含文件名 |
bool |
permission(QFile::Permissions permissions) |
看文件是否具有某些权限 |
QFile::Permissions | permissions() | 文件的所有权限 |
void | refresh() | 刷新文件信息 |
void | setCaching(bool enable) | 启动或关闭caching |
void |
setFile(QString file) setFile(QFile file) setFile(QDir dir, QString file) |
指定文件 |
qint64 | size() | 文件大小(bytes) |
QString | suffix() | 文件最后一个后缀 |
void | swap(QFileInfo &other) | 交换两个QFileInfo的内容 |
QString | symLinkTarget() | 返回当前逻辑链接指向的绝对路径 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性