当前位置: 首页 > news >正文

qt QFileInfo详解

1、概述

QFileInfo是Qt框架中用于获取文件信息的工具类。它提供了与操作系统无关的文件属性,如文件的名称、位置(路径)、访问权限、类型(是否为目录或符号链接)等。此外,QFileInfo还可以获取文件的大小、创建时间、最后修改时间和最后读取时间等信息。通过QFileInfo,开发者可以方便地获取和处理文件的各种属性,而无需关心底层的操作系统细节。

2、重要方法

  • QFileInfo(const QString &file): 构造函数,根据提供的文件路径创建一个QFileInfo对象。
  • isFile()isDir()isSymLink(): 判断文件类型,分别为普通文件、目录和符号链接。
  • exists(): 检查文件是否存在。
  • size(): 获取文件大小(以字节为单位)。
  • path()fileName()filePath(): 分别获取文件的路径(不包括文件名)、文件名(不包括路径)和文件的完整路径(可能包括绝对路径或相对路径)。
  • suffix(): 获取文件的后缀名。
  • created()lastModified()lastRead(): 分别获取文件的创建时间、最后修改时间和最后读取时间。
  • isReadable()isWritable()isExecutable(): 判断文件的访问权限。
  • symLinkTarget(): 如果QFileInfo对象表示的是一个符号链接,则返回该链接所指向的文件名。
  • makeAbsolute(): 将相对路径转换为绝对路径。
  • refresh(): 重新读取文件信息,以获取最新的文件状态。

3、重要信号

需要注意的是,QFileInfo本身并不包含信号(signals)的定义。它主要是一个提供文件信息的数据类,而不是一个用于交互的控件类。因此,在QFileInfo的使用过程中,不会涉及到信号的连接和触发。

#include <QCoreApplication>  
#include <QFileInfo>  
#include <QDebug>  int main(int argc, char *argv[])  
{  QCoreApplication a(argc, argv);  // 创建一个QFileInfo对象,并指定文件路径  QFileInfo fileInfo("/path/to/your/file.txt");  // 检查文件是否存在  if (fileInfo.exists()) {  // 获取并输出文件的各种信息  qDebug() << "文件名:" << fileInfo.fileName();  qDebug() << "文件路径:" << fileInfo.filePath();  qDebug() << "文件大小:" << fileInfo.size() << "字节";  qDebug() << "文件后缀名:" << fileInfo.suffix();  qDebug() << "文件创建时间:" << fileInfo.created().toString("yyyy/MM/dd hh:mm:ss");  qDebug() << "文件最后修改时间:" << fileInfo.lastModified().toString("yyyy/MM/dd hh:mm:ss");  qDebug() << "文件是否可读:" << fileInfo.isReadable();  qDebug() << "文件是否可写:" << fileInfo.isWritable();  // 如果文件是符号链接,输出链接目标  if (fileInfo.isSymLink()) {  qDebug() << "符号链接目标:" << fileInfo.symLinkTarget();  }  } else {  qDebug() << "文件不存在";  }  return a.exec();  
}

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/477812.html

相关文章:

  • 金华迪加 现场大屏互动系统 mobile.do.php 任意文件上传漏洞复现
  • 探寻5G工业网关市场,5G工业网关品牌解析
  • RK3568开发板静态IP地址配置
  • element-plus table tableRowClassName 无效
  • 商务英语学习柯桥学外语到泓畅-老外说“go easy on me”是什么意思?
  • 【Python爬虫基础】基于 Python 的反爬虫机制详解与代码实现
  • HTB:PermX[WriteUP]
  • uniapp 整合 OpenLayers - 使用modify修改要素
  • JMeter快速造数之数据导入导出
  • 框架学习01-Spring
  • Java | Leetcode Java题解之第539题最小时间差
  • 126页PPT麦肯锡战略实施与成本优化:质效提升与精益采购实践
  • Modbus解析流程全面升级:体验全新核心与终极优化!
  • 【MWorks】Ubuntu 系统搭建
  • 安装Element-Plus与v-model在vue3组件中的使用
  • Qt学习笔记第41到50讲
  • 加固筑牢安全防线:多源威胁检测响应在企业网络安全运营中的核心作用
  • 用Python将PDF表格提取到文本、CSV和Excel文件中
  • AIGC在游戏设计中的应用及影响
  • 给初学者的 Jupyter Notebook 教程
  • 搜维尔科技:Xsens和BoB助力生物力学教育
  • Vue动态计算Table表格的高度
  • 【MongoDB】MongoDB的聚合(Aggregate、Map Reduce)与管道(Pipline) 及索引详解(附详细案例)
  • 数组和字符串的es6新方法使用和综合案例
  • JS语法进阶第一课!—DOM(重点)
  • Swift 开发教程系列 - 第5章:集合类型
  • Spring:Bean(创建方式,抽象继承,工厂Bean,生命周期)
  • Flutter中的Extension关键字
  • transformers 框架使用详解,bert-base-chinese
  • STM32——ADC