Qt项目中对文件操作是必不可少的。顾名思义:QFile是文件对象类,QFileInfo是文件信息对象类,结合例子我们看一下用法。
读的文件内容如下,以字符 “#” 或者 “;” 开始的为注释行。
[Extern_Item1] ;名称 Name=libccgext_cvi_64.so ;处理数据的最大线程数,缺省为空:30 DealThreads=32 ;数据库最大线程数,缺省为空:10 DBThreads= ;心跳间隔,缺省为空:120秒 HeartInverval= #参数配置1 LijdGod=案例主代码如下,on_pushButton_clicked 函数为 pushButton 按钮设置的槽函数。
#include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QRegExp> #include <QFile> #include <QFileInfo> #include <QDebug> #include <QDateTime> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { // 创建一个QFileDialog对象让用户选择打开文件 QString file_name = QFileDialog::getOpenFileName(nullptr, "选择文件", ".", "*.ini"); ui->lineEdit->setText(file_name); QFile fileObj(file_name); if(!fileObj.open(QIODevice::ReadWrite)) { return; } // 打印文件属性 QFileInfo fileInfoObj(fileObj); qDebug() << "文件名称:" << fileInfoObj.fileName(); qDebug() << "文件后缀名:" << fileInfoObj.suffix(); qDebug() << "文件路径:" << fileInfoObj.filePath(); qDebug() << "文件大小:" << fileInfoObj.size(); qDebug() << "文件创建时间:" << (fileInfoObj.created()).toString("yyyy-MM-dd HH:mm:ss"); qDebug() << "文件最后修改时间:" << fileInfoObj.lastModified().toString("yyyy/MM/dd HH:mm:ss"); // 文件全部读取 // QByteArray bArry = fileObj->readAll(); // ui->textEdit->setText(bArry.data()); // 设置正则表达式,匹配注释行 QRegExp *reg = new QRegExp("^(;|#).*"); QString strFile; // 按行读取 while(!fileObj.atEnd()) { QByteArray bArry = fileObj.readLine(); // 跳过注释行 if(!reg->exactMatch(bArry.data())) { strFile += bArry.data(); } } ui->textEdit->setText(strFile); fileObj.close(); }执行结果如下:
Qt学习之QFile和QFileInfo
最新推荐文章于 2025-01-20 20:57:12 发布

1195

被折叠的 条评论
为什么被折叠?



