QT实现遍历目录的过程并显示整个过程
时间: 2024-05-03 22:19:39 浏览: 15
可以通过递归遍历目录来实现,以下是一个简单的示例代码:
```cpp
#include <QCoreApplication>
#include <QDir>
#include <QDebug>
void traverseDirectory(const QString& path, int depth = 0)
{
QDir dir(path);
dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot);
// 输出当前目录
qDebug() << QString(depth, ' ') << dir.path();
// 遍历子文件夹
QStringList subdirs = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
foreach (QString subdir, subdirs) {
traverseDirectory(dir.filePath(subdir), depth + 2);
}
// 遍历当前文件夹内的文件
QStringList files = dir.entryList(QDir::Files);
foreach (QString file, files) {
qDebug() << QString(depth + 2, ' ') << file;
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString path = "/"; // 遍历根目录
traverseDirectory(path);
return a.exec();
}
```
该程序会输出遍历的整个过程,包括目录和文件的名称以及它们所在的深度。