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. 【Vue源码学习】响应式原理探秘

    最近准备开启Vue的源码学习,并且每一个Vue的重要知识点都会记录下来.我们知道Vue的核心理念是数据驱动视图,所有操作都只需要在数据层做处理,不必关心视图层的操作.这里先来学习Vue的响应式原理,V ...

  2. 不难懂------git开发过程中流程

    001.创建仓库 002.新建项目 003.初始化仓库  这一步不需要做 git init : 文件夹中会多出一个隐藏的.git文件 004.克隆项目 git clone <项目地址> 0 ...

  3. 配置kubectl连接多个kubernetes集群

    背景:我们通过会有多个k8s集群,例如集群(cn-k8s)和集群(jp-k8s),那个就需要有一台服务器可以同时访问两个集群,方式:将2个集群的config信息存放到一个文件中,通过使用 kubect ...

  4. Python:使用pyinstaller打包含有gettext locales语言环境的项目

    问题 如何使用 pyinstaller 打包使用了 gettext 本地化的项目,最终只生成一个 exe 文件 起因 最近在用 pyhton 做一个图片处理的小工具,顺便接触了一下 gettext,用 ...

  5. 服务器+nextcloud搭建自己的私有云盘

    简介 Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了Wind ...

  6. JavaScript 中如何将日期格式化为 DD/MM/YYYY

    在 JavaScript 中要将日期格式化为 dd/mm/yyyy .需要遵循以下步骤: 使用 getDate().getMonth() 和 getFullYear() 方法获取特定日期的日.月和年. ...

  7. BootStrap基础入门概述总结

    是否还值得学习BootStrap 因为自己还是学生,自己在学习之前就先在网上看了看BootStrap是否在现在依旧流行,是否还值得学习. 以下是网友的一些评价: 20年11月 Bootstrap作为入 ...

  8. <input type="file"> 标签详解

    详见:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input/file#attr-multiple 使用 type=" ...

  9. 【linux运维】Linux服务器玩转vsftpd安装与配置

    Linux服务器搭建ftp详细教程. 前言 本文,主要以vsftp软件为主进行讲解,版本为3.0.2.以介绍设置虚拟用户.权限验证为主,linux权限知识默认大家都有所了解.vsftpd设置有两种模式 ...

  10. VUE集成keycloak和Layui集成keycloak

    一:KEYCLOAK配置部分: 1,下载keycloak,官网地址:https://www.keycloak.org/downloads.html.下载第一个就行 2,下载完毕之后,打开文件,访问 b ...