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() | 返回当前逻辑链接指向的绝对路径 |
Qt:QFileInfo的更多相关文章
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- QT:多线程HTTP下载文件
这里的线程是指下载的通道(和操作系统中的线程不一样),一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器 ...
- QT:用QWebSocket实现webchannel,实现C++与HTML通信
基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js.前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTra ...
- Qt:QDir
0.说明 QDir提供了访问目录及目录下内容的类. QDir既可以用于访问文件系统,也可以用于访问Qt 资源系统(Qt's resource system.). Qt用 "/" 作 ...
随机推荐
- STM32定时器触发ADC多通道连续采样,DMA缓存结果
STM32的ADC使用非常灵活,采样触发方面:既支持软件触发,定时器或其他硬件电路自动触发,也支持转换完成后自动触发下一通道/轮转换.转换结果存储方面:既支持软件读取和转存,也支持DMA自动存储转换结 ...
- 利用Jemalloc进行内存泄漏的调试
内存不符预期的不断上涨,可能的原因是内存泄漏,例如new出来的对象未进行delete就重新进行复制,使得之前分配的内存块被悬空,应用程序没办法访问到那部分内存,并且也没有办法释放:在C++中,STL容 ...
- Activity 不只有跳转。功能篇(一)
Activity生命周期 1:activity四种启动方式 standard,SingleTask,SingleTop,SingleInstance standard:是系统默认的,每次启动该acti ...
- 「NOI十联测」黑暗
「NOI十联测」黑暗 \(n\) 个点的无向图,每条边都可能存在,一个图的权值是连通块个数的 \(m\) 次方,求所有可能的图的权值和.(n≤30000,m≤15) 令\(ans[n][m]\)为n个 ...
- LCT 入门
这是一份 \(\rm LCT\) 入门总结. 关于 \(\rm LCT\) 的复杂度这里不会提及,只会记录 \(\rm LCT\) 的基本操作和经典例题,但神奇的 \(\rm LCT\) 虽然常数巨大 ...
- BOM与DOM之DOM操作
目录 一:DOM操作 1.DOM介绍 2.DOM标准规定HTML文档中的每个成分都是一个节点(node): 3.DOM操作需要用关键字 二:查找标签 1.id查找 类查找 标签查找(直接查找) 2.i ...
- JAVA中获取不同系统的换行符和获取系统路径路径分割符
简介 JAVA具有多平台特征,一次开发,多平台运行,主要依据JVM,但是不同的操作系统中换行符和分割符不同,故需要根据不同的操作系统去获取不同的符号. JAVA代码 @Test public void ...
- scons: 使用 SCons 轻松建造程序
转载请注明来源:https://www.cnblogs.com/hookjc/ 在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自 ...
- 在linux下的mysql导入存储过程出现语法错误,需要在文件里加DELIMITER //
http://my.oschina.net/zerotime/blog/113126 Mysql命令行创建存储过程时,首先要输入分隔符 DELIMITER // CREATE PROCEDURE pr ...
- 利用系统APP实现导航---By张秀清
苹果系统本身自带一个地图APP,但是功能并不是很强大,但是一些简单的导航功能还是能做出来的,下面贴上我的代码 // // ViewController.m // 系统APP导航 // // Creat ...