1.文件的读写

利用QFile读写操作
QFile file(path);
file.open(QIODevice::ReadOnly); 打开方式
读:file.readAll(全部读取), file.readLine
判断是否是结尾 file.AtEnd()
默认支持编码格式utf-8
可以利用编码格式类指定编码格式 QTextCodec
QTextCodec *codec = QTextCodec::codecForName(“GBK”);
ui->textEdit->setText(codec->toUnicode(array)); //转成gbk
关闭file.close
写:file.open(QIODevice::WriteOnly); Append
file.write 写入

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QFileDialog>
  4. #include <QFile>
  5. #include <QTextCodec>
  6. Widget::Widget(QWidget *parent) :
  7. QWidget(parent),
  8. ui(new Ui::Widget)
  9. {
  10. ui->setupUi(this);
  11. //点击选取按钮,弹出文件对话框
  12. connect(ui->pushButton, &QPushButton::clicked, [=](){
  13. QString path = QFileDialog::getOpenFileName(this, "打开文件", "/home/haitao/Desktop");
  14. ui->lineEdit->setText(path);
  15. //编码格式类
  16. QTextCodec *codec = QTextCodec::codecForName("GBK");
  17. //读取内容放到 textEdit中
  18. //默认支持格式utf-8
  19. QFile file(path); //参数就是读取文件的路径
  20. //设置打开方式
  21. file.open(QIODevice::ReadOnly);
  22. // QByteArray array = file.readAll();
  23. QByteArray array;
  24. //是否读到文件尾部
  25. while (!file.atEnd())
  26. {
  27. array += file.readLine();
  28. }
  29. // array = file.readLine();
  30. //读取到的数据放到textEdit中
  31. ui->textEdit->setText(array);
  32. // ui->textEdit->setText(codec->toUnicode(array));
  33. //关闭
  34. file.close();
  35. //追加方式写
  36. file.open(QIODevice::Append);
  37. file.write("真不错");
  38. file.close();
  39. });
  40. }
  41. Widget::~Widget()
  42. {
  43. delete ui;
  44. }

image.png

2.file文件的信息获取

创建读取QFileInfo
详细使用如下:

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QFileDialog>
  4. #include <QFile>
  5. #include <QTextCodec>
  6. #include <QFileInfo>
  7. #include <QDebug>
  8. #include <QDateTime>
  9. Widget::Widget(QWidget *parent) :
  10. QWidget(parent),
  11. ui(new Ui::Widget)
  12. {
  13. ui->setupUi(this);
  14. //点击选取按钮,弹出文件对话框
  15. connect(ui->pushButton, &QPushButton::clicked, [=](){
  16. QString path = QFileDialog::getOpenFileName(this, "打开文件", "/home/haitao/Desktop");
  17. ui->lineEdit->setText(path);
  18. QFileInfo info(path);
  19. qDebug() << "大小:" << info.size() << "后缀名:" << info.suffix() << "文件名称:" << info.fileName() << "文件路径:" << info.filePath();
  20. qDebug() << "创建日期:" << info.created().toString("yyyy/MM/dd hh:mm:ss");
  21. });
  22. }
  23. Widget::~Widget()
  24. {
  25. delete ui;
  26. }

image.png