qt读取文件夹下全部txt的内容,用qtextstream实现
时间: 2024-03-07 21:47:18 浏览: 106
可以使用Qt提供的QDir和QTextStream类来实现读取文件夹下全部txt文件的内容。具体的代码如下:
```cpp
QString folderPath = "folderPath"; //文件夹路径
QDir dir(folderPath); //打开文件夹
dir.setFilter(QDir::Files | QDir::NoSymLinks); //设置过滤器,只读取文件,不包括符号链接
dir.setNameFilters(QStringList() << "*.txt"); //设置文件名过滤器,只读取txt文件
QList<QFileInfo> fileList = dir.entryInfoList(); //获取文件列表
foreach(QFileInfo fileInfo, fileList) { //遍历文件列表
QFile file(fileInfo.filePath()); //打开文件
if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //判断文件是否打开成功
qDebug() << "File open failed!";
continue;
}
QTextStream in(&file); //读取文件
while(!in.atEnd()) { //遍历文件内容
QString line = in.readLine(); //读取一行内容
qDebug() << line; //输出内容
}
file.close(); //关闭文件
}
```
这样就可以读取指定文件夹下全部txt文件的内容了。需要注意的是,如果文件夹路径中包含中文名字,需要将路径转换为UTF-8编码格式,否则可能会导致无法打开文件。可以使用QString的toUtf8()方法将路径转换为UTF-8编码格式,如下所示:
```cpp
QString folderPath = "中文文件夹路径";
QDir dir(folderPath.toUtf8()); //将路径转换为UTF-8编码格式
```
阅读全文