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

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.kler.cn/a/380287.html

相关文章:

  • ubuntu22.04安装conda
  • 物联网赋能的人工智能图像检测系统
  • Java面向对象 C语言字符串常量
  • WSL开发--利用Git连接远程仓库(详细步骤)
  • VR 创业之路:从《I Expect You To Die》到未来展望
  • Three.js简化 WebGL 的使用
  • GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
  • 【Linux系列】Linux 和 Unix 系统中的`set`命令与错误处理
  • Qt Modbus 2 通信实现
  • Ubuntu桌面环境下没有网络配置图标,只有显示VPN设置
  • 网络:IP分片和组装
  • 考取无人机“飞手”执照,进入部队、电力、铁路、石油企业抢占优势
  • 前端Nginx的安装与应用
  • 电脑如何不断网切换IP:实用方法与注意事项‌
  • Android -- [SelfView] 自定义圆盘指针时钟
  • qt QStatusBar详解
  • k8s 查看cpu使用率最高的pod
  • Hive自定义函数—剔除周日周六(小时级别)
  • 爬虫学习4
  • Vue中ref、reactive、toRef、toRefs的区别
  • IoTDB时序数据库使用
  • R 环境安装
  • 103 - Lecture 2 Table and Data Part 1
  • 初识JDBC
  • 深度学习基础知识-全连接层
  • Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用