Qt | 读取文件内容并删除文件 QFile

简介: Qt读取文件内容的实现。

环境:VS2017+Qt5.14.2

程序中有时需要读取文件内容的功能,读取文件内容一般涉及到提取应用程序路径、提取目录或文件信息、打开文件、提取文件信息等功能。

读取文件内容和删除文件的相关的操作类有:

  • QFile:除了打开文件操作外,QFile还有复制文件、删除文件等功能。
  • QDir:用于提取目录或文件信息,获取一个目录下的文件或目录列表,创建或删除目录和文件,文件重命名等操作。

1.首先获取程序当前的运行路径,然后拼接文件路径。

QString qstrPath = QDir::currentPath();

qstrPath += "\Files\";

2.判断路径是否存在。

QDir dir(qstrPath);

bool ret = dir.exists();

QDir是进行目录操作的类,在创建QDir对象时传递一个目录字符串作为当前目录,然后QDir函数就可以针对当前目录或目录下的文件进行操作。在操作之前可以调用exists()函数判断一下传递的目录是否存在,如果存在再进行操作。

3.过滤文件类型。

QStringList filters; filters << QString(".txt") << QString(".doc");

//设置需要筛选出来的文件的后缀名,可以设置多种文件类型。

dir.setFilter(QDir::Files | QDir::NoSymLinks);

//设置类型过滤器只为文件格式,QDir::Files为只列出文件,QDir::NoSymLinks不列出符号连接(不支持符号连接的操作系统会忽略它,什么意思我也不太清楚)

dir.setNameFilters(filters);

//这个函数会将我们设置的文件格式设置进去,就可以得到我们想要的格式的文件了。到这里,所有符合我们设置的文件都已经筛选出来了。调用dir.count()可以获取到筛选出的文件的个数。

4.读取文件内容并删除文件。

for(int i=0; i<dir.count(); i++)
{
    QByteArray data;
    QFile file;
    QString qstrFileName = qstrName + dir[i];
    file.setFileName(qstrFileName);
    if(file.open(QIODevice::ReadOnly))
    {
        data = file.readAll();
        file.close();
        file.remove();
    }
}

setFileName()为设置文件路径名称,设置文件路径名之后,调用open()函数打开文件,参数为可以对文件进行的操作的类型,分为只读、只写、可读可写。打开文件后调用readAll()函数将文件中的内容全部读到QByteArray里面,然后调用close()函数关闭文件。调用remove()函数可以将这个文件删除。

目录
相关文章
|
5月前
|
计算机视觉 数据格式
使用opencv在Qt控件上播放mp4文件
使用opencv在Qt控件上播放mp4文件
199 2
|
5月前
|
存储 C++
基于Qt的简易文件压缩与解压缩工具设计与实现
基于Qt的简易文件压缩与解压缩工具设计与实现
288 1
|
5月前
|
监控 安全 Linux
Qt 文件类实战:解锁文件操作的无限可能
Qt 文件类实战:解锁文件操作的无限可能
251 1
|
5月前
【QT】创建、打开QT项目只显示.pro文件的问题解决
【QT】创建、打开QT项目只显示.pro文件的问题解决
559 0
|
5月前
|
编译器 API 数据安全/隐私保护
深入对比:Qt 的 QFile/QFileInfo 和与 C++17 Filesystem 和标准文件流 的细节剖析
深入对比:Qt 的 QFile/QFileInfo 和与 C++17 Filesystem 和标准文件流 的细节剖析
495 3
|
2月前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
28 0
|
3月前
|
C++
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
413 6
|
2月前
|
存储 算法 C++
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
【C++】C++ QT实现Huffman编码器与解码器(源码+课程论文+文件)【独一无二】
|
2月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
521 4
|
2月前
|
XML 开发框架 API
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
111 1