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. For Update 加锁分析

    MySQL InnoDB 锁 - For Update 加锁分析: 1. InnoDB锁 简单介绍 2. 当前读加锁分析:REPEATABLE-READ 可重复读.READ-COMMITTED 读已提 ...

  2. tcp|ip nagle算法

    在TCP传输数据流中,存在两种类型的TCP报文段,一种包含成块数据(通常是满长度的,携带一个报文段最多容纳的字节数),另一种则包含交互数据(通常只有携带几个字节数据). 对于成块数据的报文段,TCP采 ...

  3. Jvm内存回收

    一.什么内存会被回收 可达性分析算法 通过一系列的GC ROOT的对象作为超始点,从这些节点开始向下搜索,搜索所走的路径称为"引用链",当一个对象到GC ROOT之间没有任何引用链 ...

  4. Gulp自动化任务及nvm、npm常用命令

    项目环境配置 nvm:   node版本管理工具,安装和环境变量         cmd常用命令: · nvm use [version]: 切换至指定版本的node · nvm install no ...

  5. Element Plus 正式版发布啦!🎉🎉

    今天,我们非常高兴地宣布 Element Plus 稳定版正式发布.自第一个 commit 起,经过 1 年零 7 个月的持续迭代开发,总计 2635 commits,经过 256 位贡献者所提交的 ...

  6. Redis设计与实现

    简述Redis设计与实现 Redis是一个高性能的key-value的非关系型数据库,Redis是运行在内存中的一种数据库,但是它也可以持久化到磁盘中,Redis的实现有着更为复杂的数据结构并且提供对 ...

  7. Atcoder ARC-070

    A 可以发现的是,次数的下界一定是使得 \(\frac{n(n + 1)}{2} \ge X\) 最小的 \(n\). 稍加思考可以发现,只需要在某一时刻停一下一定能在下界的次数内跳到恰好 \(X\) ...

  8. html5 新增标签和特性

    文档类型设定 document HTML: XHTML: HTML5 字符设定 <meta http-equiv="charset" content="utf-8& ...

  9. 什么是Segue

    Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) Segue的属性 每一个Segue对象,都有3个属性唯一标识@property (non ...

  10. 自动循环滚动ScrollView

    // // SBCycleScrollView.h // SBCycleScrollView // // Created by luo.h on 15/7/12. // Copyright (c) 2 ...