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、静态方法

bool exists(const QString &file) 路径文件是否存在

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的更多相关文章

  1. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  2. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  3. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  4. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  5. Qt:QJsonArray

    0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...

  6. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  7. QT:多线程HTTP下载文件

    这里的线程是指下载的通道(和操作系统中的线程不一样),一个线程就是一个文件的下载通道,多线程也就是同时开起好几个下载通道.当服务器提供下载服务时,使用下载者是共享带宽的,在优先级相同的情况下,总服务器 ...

  8. QT:用QWebSocket实现webchannel,实现C++与HTML通信

    基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js.前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTra ...

  9. Qt:QDir

    0.说明 QDir提供了访问目录及目录下内容的类. QDir既可以用于访问文件系统,也可以用于访问Qt 资源系统(Qt's resource system.). Qt用 "/" 作 ...

随机推荐

  1. STM32定时器触发ADC多通道连续采样,DMA缓存结果

    STM32的ADC使用非常灵活,采样触发方面:既支持软件触发,定时器或其他硬件电路自动触发,也支持转换完成后自动触发下一通道/轮转换.转换结果存储方面:既支持软件读取和转存,也支持DMA自动存储转换结 ...

  2. 利用Jemalloc进行内存泄漏的调试

    内存不符预期的不断上涨,可能的原因是内存泄漏,例如new出来的对象未进行delete就重新进行复制,使得之前分配的内存块被悬空,应用程序没办法访问到那部分内存,并且也没有办法释放:在C++中,STL容 ...

  3. Activity 不只有跳转。功能篇(一)

    Activity生命周期 1:activity四种启动方式 standard,SingleTask,SingleTop,SingleInstance standard:是系统默认的,每次启动该acti ...

  4. 「NOI十联测」黑暗

    「NOI十联测」黑暗 \(n\) 个点的无向图,每条边都可能存在,一个图的权值是连通块个数的 \(m\) 次方,求所有可能的图的权值和.(n≤30000,m≤15) 令\(ans[n][m]\)为n个 ...

  5. LCT 入门

    这是一份 \(\rm LCT\) 入门总结. 关于 \(\rm LCT\) 的复杂度这里不会提及,只会记录 \(\rm LCT\) 的基本操作和经典例题,但神奇的 \(\rm LCT\) 虽然常数巨大 ...

  6. BOM与DOM之DOM操作

    目录 一:DOM操作 1.DOM介绍 2.DOM标准规定HTML文档中的每个成分都是一个节点(node): 3.DOM操作需要用关键字 二:查找标签 1.id查找 类查找 标签查找(直接查找) 2.i ...

  7. JAVA中获取不同系统的换行符和获取系统路径路径分割符

    简介 JAVA具有多平台特征,一次开发,多平台运行,主要依据JVM,但是不同的操作系统中换行符和分割符不同,故需要根据不同的操作系统去获取不同的符号. JAVA代码 @Test public void ...

  8. scons: 使用 SCons 轻松建造程序

    转载请注明来源:https://www.cnblogs.com/hookjc/ 在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自 ...

  9. 在linux下的mysql导入存储过程出现语法错误,需要在文件里加DELIMITER //

    http://my.oschina.net/zerotime/blog/113126 Mysql命令行创建存储过程时,首先要输入分隔符 DELIMITER // CREATE PROCEDURE pr ...

  10. 利用系统APP实现导航---By张秀清

    苹果系统本身自带一个地图APP,但是功能并不是很强大,但是一些简单的导航功能还是能做出来的,下面贴上我的代码 // // ViewController.m // 系统APP导航 // // Creat ...