【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;
}
相关推荐
锦亦之22338 小时前
QT+OSG+OSG-earth如何在窗口显示一个地球
开发语言·qt
柳鲲鹏11 小时前
编译成功!QT/6.7.2/Creator编译Windows64 MySQL驱动(MinGW版)
开发语言·qt·mysql
三玖诶11 小时前
如何在 Qt 的 QListWidget 中逐行添加和显示数据
开发语言·qt
阳光开朗_大男孩儿17 小时前
DBUS属性原理
linux·服务器·前端·数据库·qt
Alphapeople18 小时前
Qt Modbus
开发语言·qt
竹林海中敲代码18 小时前
Qt Creator 集成开发环境 常见问题
qt·qt工具常见问题
竹林海中敲代码21 小时前
Qt安卓开发连接手机调试(红米K60为例)
android·qt·智能手机
长沙红胖子Qt1 天前
关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法
开发语言·qt·qt扩大运行内存
gopher95111 天前
qt相关面试题
开发语言·qt·面试
三玖诶1 天前
在 Qt 中使用 QLabel 设置 GIF 动态背景
开发语言·qt·命令模式