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. React/Vue 项目在 GitHub Pages 上部署时资源的路径问题

    GitHub Pages 常被用来部署个人博客,而无论是大名鼎鼎的 Jekyll,还是 Hugo 或者 Hexo,他们都是将我们的文章嵌入模板,发布为静态页面,也就是说,GitHub Pages (G ...

  2. Android开发----EditText&ImageView&第三方库的加载

    EditText组件 一个实例描述该组件的全部属性(虚假的登录界面) 在activity.xml中 <?xml version="1.0" encoding="ut ...

  3. linux中awk命令(最全面秒懂)

    目录 一:linux中awk命令 1.awk命令简介 2.awk作用 3.awk的语法格式 4.解析awk使用方法 5.参数 6.awk的生命周期 二:awk中的预定义变量 三:awk运行处理规则的执 ...

  4. 关于使用学生或者教师身份免费使用JetBrains全家桶的说明

    官网操作 JetBrains是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄罗斯的圣彼得堡及美国麻州波士顿都设有办公室,该公司有众多的好用的IDE,比如pycharm,webstorm,Int ...

  5. Vue 之 浏览本地图片功能

      template <input type="file" ref="input_file" @change="fileChange" ...

  6. hive 常用日期格式转换

    固定日期转换成时间戳select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800select unix_timestamp('201608 ...

  7. WinDbg 分析dump

    1.生成dump文件. 在代码捕获异常,并将异常写入dump文件. #include "stdafx.h" #include <Windows.h> #include ...

  8. 【C++】输入输出

    缓冲 C++ 的输入输出均通过缓冲区来实现.缓冲区主要是为了解决速度不匹配的问题. cin 阻塞输入.当输入缓存中无字符时则等待用户输入. 输入缓冲 输入缓冲是一种行缓冲.在输入数据只要没有碰到换行符 ...

  9. Git使用教程(超全,看一篇就够了)

    目录 Git介绍 Git安装 Git使用 问题与解决 推荐学习网址 Git介绍 Git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系 ...

  10. Java中Type接口及其子类

    简介 Type是Java 编程语言中所有类型的公共高级接口,和Object不同,Object是所有类的父类,即Object是Type的父类. 分类 原始类型(Class):不仅仅包含我们平常所指的类, ...