【QT】QFileInfo文件信息读取

基于上节:【QT】文件读写-CSDN博客

cpp 复制代码
 //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix() << "大小:"<< info.size()
                     << "文件名:" << info.fileName() << "文件路径" << info.filePath();

效果

去掉双引号

cpp 复制代码
 //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix().toUtf8().data() << "大小:"<< info.size()
                     << "文件名:" << info.fileName().toUtf8().data() << "文件路径" << info.filePath().toUtf8().data();

效果

打印QDateTime

cpp 复制代码
            // 创建日期
            qDebug() << "创建日期" << info.birthTime().toString("yyyy-MM-dd hh:mm:ss")
                     << "最后修改日期:" << info.lastModified().toString("yyyy/MM/dd hh:mm:ss");

效果

全部代码

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QTextCodec>
#include <QFileInfo>
#include <QDebug>
#include <QDateTime>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 点击选择文件按钮。弹出问价对话框,读取文件,将文件路径放入在lineEdit,内容放在TextEdit
    connect(ui->addFile, &QPushButton::clicked, this, [=]() {
        // 弹出对话框
        // 父窗口,标题,路径,过滤格式。返回值是路径
        QString filePath = QFileDialog::getOpenFileName(this, "打开文件", "D:\\code\\QT\\demo22", "(*.txt)");
        // 判断空路径
        if (filePath.isEmpty()) {
            QMessageBox::warning(this, "警告", "路径不能为空");
        } else {
            ui->lineEdit->setText(filePath);
            // 读取文件信息
            QFile file(filePath);
            // 指定打开方式,只读
            file.open(QIODevice::ReadOnly);
            // 读取全部信息
            QByteArray arr;
//            arr = file.readAll();             // 读所有

            // 按行读
            while (!file.atEnd()) {
                arr += file.readLine();
            }
            // 将内容放在TextEdit,默认支持utf-8
            ui->textEdit->setText(arr);

            // 关闭文件
            file.close();
            // 写文件,会覆盖前面的内容
//            file.open(QIODevice::WriteOnly);
            file.open(QIODevice::Append);         // 追加
            file.write("123456789");
            file.close();




//            // 提前指定编码格式
//            QTextCodec* codec = QTextCodec::codecForName("gbk");
//            ui->lineEdit->setText(filePath);
//            // 读取文件信息
//            QFile file(filePath);
//            // 指定打开方式,只读
//            file.open(QIODevice::ReadOnly);
//            // 读取全部信息
//            QByteArray arr;
//            arr = file.readAll();
//            // 将内容放在TextEdit,
//            ui->textEdit->setText(codec->toUnicode(arr));
//            file.close();

            //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix().toUtf8().data() << "大小:"<< info.size()
                     << "文件名:" << info.fileName().toUtf8().data() << "文件路径" << info.filePath().toUtf8().data();



            // 创建日期
            qDebug() << "创建日期" << info.birthTime().toString("yyyy-MM-dd hh:mm:ss")
                     << "最后修改日期:" << info.lastModified().toString("yyyy/MM/dd hh:mm:ss");

        }


    });
}

Widget::~Widget()
{
    delete ui;
}
相关推荐
cpp_learners8 小时前
银河麒麟V10+飞腾FT-2000/4处理器+QT源码静态编译5.14.2指南
开发语言·qt
GIS阵地10 小时前
QgsProviderMetadata 详解(基于 QGIS 3.40.13 API)
数据库·qt·arcgis·oracle·gis·开源软件·qgis
被AI抢饭碗的人13 小时前
QT:基础与信号槽
前端·qt
小温冲冲13 小时前
Qt WindowContainer 完整实战示例:QWidget 嵌入 QML
开发语言·数据库·qt
芦芭荞14 小时前
QT之TCP/IP通讯
开发语言·qt·tcp/ip
冉佳驹16 小时前
Qt 开发【第三篇】——— 核心属性解析与应用实践
qt·geometry·qicon·enabled·windowopacity·qwidget核心属性·framegeometry
code_计梦星河18 小时前
Qt 开发第十三天:打卡模块跨端数据传输及连续天数计算开发
qt
誰能久伴不乏18 小时前
从数字世界到物理引擎:用 PWM 撕开 0 和 1 的结界
linux·arm开发·c++·qt
sycmancia18 小时前
QT——第一个GUI应用程序
qt
sycmancia18 小时前
Qt——窗口部件及窗口类型、坐标系统
开发语言·qt