【QT】文件操作(QFile)和 文件的属性(QFileInfo)

QT中对文件的操作—很重要

比如对文件的查找和替换

读文件

在这里插入图片描述

Truncate:截断。

QFile file(fileName);

默认打开的是utf8文件。

bool isOk = file.open(QFile::ReadOnly);

打开其他类型的乱码怎么办?

使用下面的方式,强制从utf8转gbk

#include <QTextCodec>

        QFile file(fileName);
        QTextCodec* codec = QTextCodec::codecForName("gbk");
           //打开文件
           //指定打开方式
           //读文件
           //显示文本框
        ui->textEdit->setText(codec->toUnicode(array));

读文件

    QByteArray array = file.readAll();一次读到末尾
  • 只读一行

QByteArray array = file.readLine();

读取多行

while(file.atEnd())//判断读到最后一行

{

array += file.readLine();

}

在这里插入图片描述

#include "widget.h"
#include "ui_widget.h"
#include <QFile>
#include <QFileDialog>
#include <QMessageBox>
#include <QPushButton>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    connect(ui->selectFile,&QPushButton::clicked,this,[=](){
        QString fileName= QFileDialog::getOpenFileName(this,"openfile","");
        if(fileName.isEmpty() == true)
        {
            QMessageBox::warning(this,"warning","打开失败");
            return;
        }
        ui->lineEdit->setText(fileName);

        //创建对象

        QFile file(fileName);

        //指定打开方式  --有返回值
        bool isOk = file.open(QFile::ReadOnly);
        if(isOk == false)
        {
            QMessageBox::critical(this,"ERROR","File open Failed");
        }

        //读文件
        QByteArray array = file.readAll();
        //显示文本框
        ui->textEdit->setText(array);
        //文件读写完成
        //关闭文件
        file.close();
    });

}

Widget::~Widget()
{
    delete ui;
}

在这里插入图片描述

写文件

QTextCodec:设置读取文本的格式(文件转码

#include <QTextCode>

toUtf8()可以将QString类型转为QByteArray

QString str = “lalalalla”;

str.toUtf8();

在这里插入图片描述

          char buf[55] = {"1111"};
          file.write(buf,strlen(buf));
          file.write(QString("llala").toUtf8());
          file.write(buf);
       

文件属性

在这里插入图片描述

          #include <QFileInfo> //文件属性
          #include<QDateTime>  //想要获取事件信息
          
           QFileInfo info("/home/yangyu/DailyFILE/picture/39.jpg");
           qDebug()<<"文件名称"<<info.fileName();//获取文件名
           qDebug()<<"文件后缀"<<info.suffix();
           qDebug()<<"文件大小"<<info.size();
           qDebug()<<"文件路径"<<info.filePath();
           qDebug()<<"文件创建时间"<<info.created().toString("yyyy-MM-dd hh:mm:ss");
           qDebug()<<"文件修改时间"<<info.lastModified().toString("yyyy-MM-dd hh:mm:ss");

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值