使用Qfileinfolist去查找一段目录,如果获取的是文件则存放在信息列表里面,如果是子目录,则继续进入子目录进行获取文件,直到没有子目录为止
时间: 2024-09-11 12:15:11 浏览: 53
`QFileInfoList` 是一个在Qt框架中用于文件信息管理的类,它可以用来获取目录下的所有文件和子目录的信息。在Qt中,你可以使用`QDir`类来进行目录的遍历。以下是一个基于`QDir`和`QFileInfoList`的基本示例,用于遍历一个目录及其子目录,并将所有找到的文件信息存放到一个列表中:
```cpp
#include <QDir>
#include <QFileInfoList>
#include <QFileInfo>
// 假设这是你要遍历的起始目录路径
QString rootPath = "/path/to/your/directory";
// 创建一个QDir对象
QDir dir(rootPath);
// 用于存放找到的文件的列表
QFileInfoList fileList;
// 获取根目录下的所有条目(包括文件和子目录)
QStringList dirEntries = dir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
// 遍历所有条目
foreach (const QString &entry, dirEntries) {
// 创建一个新的QFileInfo对象
QFileInfo fileInfo(dir, entry);
// 如果是文件,则添加到文件列表中
if (fileInfo.isFile()) {
fileList.append(fileInfo);
}
// 如果是目录,则递归调用此函数
else if (fileInfo.isDir()) {
// 递归调用,但要小心递归深度和避免过深的递归可能导致的问题
fileList.append(getFilesInDirectory(fileInfo.absoluteFilePath()));
}
}
// 函数结束时,fileList将包含所有在指定目录和其子目录下的文件信息
//
阅读全文
相关推荐


















