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. 从零开始, 开发一个 Web Office 套件 (2): 富文本编辑器

    书接前文: 从零开始, 开发一个 Web Office 套件 (1): 富文本编辑器 这是一个系列博客, 最终目的是要做一个基于HTML Canvas 的, 类似于微软 Office 的 Web Of ...

  2. rsync实时备份监控命令(详细大全)

    目录 一:rsync介绍 1.rsync简介 2.rsync特性 3.rsync应用场景 4.rsync的传输方式 5.Rsync传输模式 二:RSYNC使用参数 三:参数使用案例 一:rsync介绍 ...

  3. CICD流程

    1.开发者git提交代码至gitlab仓库 2.jenkins从gitlab拉取代码,触发镜像构建 3.镜像上传至harbor私有仓库 4.镜像下载至执行机器--k8s node kubelet 5. ...

  4. GitHubPages的域名解析信息

    github目录下CNAME修改

  5. plsql 存储过程 介绍。

    /* 7-22 知识总结? 1. 存储过程 2.函数 3.包 */ /*1.什么是存储过程? 语法? 存储过程:类似于Java中的方法:完成一个特定的功能,一系列代码 (增删改操作和一些逻辑判断,se ...

  6. 反汇编分析C++代码

    编译环境:Windows 10 + VS2015 1.问题引入 在Win32环境下,CPU小端模式,参数用栈来传递,写出输出结果. 代码如下: int main() { long long a = 1 ...

  7. SimpleDateFormat简介及替代方案

    简介 SimpleDateFormat是一个时间格式化工具,可以将字符串格式化时间Date类型,也可以将Date类型格式化为字符串String类型,但其线程不安全. 常用方法 public final ...

  8. autorelease注意事项

    1.autorelease使用注意 并不是放到自动释放池代码中,都会自动加入到自动释放池 @autoreleasepool { // 因为没有调用 autorelease 方法,所以对象没有加入到自动 ...

  9. iOS 模糊、精确搜索匹配功能方法总结 By HL

    字符串搜索主要用于UITableView的搜索功能的筛选,过滤,查询 下面是一些流行的搜索查询方法 一.遍历搜索 for循环 根据要求:精确搜索(判读字符串相等)   模糊搜索(字符串包含) 相关知识 ...

  10. 键盘弹起及lab时的动态计算高度 --董鑫

    1.键盘抬起或掉下时,动态计算高度 2.动态计算Label的高度 计算的高度时,numberOfLines必须设置为0: 2.1  ios7.0之后 2.2 iOS 7.0之前