写一个Qt的软件遍历目录下面的文件并且打印出所有绝对路径
时间: 2024-05-03 07:23:21 浏览: 90
遍历并输出指定文件的绝对路径
以下是一个简单的Qt程序,可以遍历指定目录下的所有文件,并打印出它们的绝对路径:
```cpp
#include <QCoreApplication>
#include <QDir>
#include <QDebug>
void listFiles(const QDir& dir) {
// 获取当前目录下的所有文件和目录
QFileInfoList files = dir.entryInfoList(QDir::AllEntries | QDir::NoDotAndDotDot);
// 遍历所有文件和目录
for (const QFileInfo& fileInfo : files) {
if (fileInfo.isDir()) {
// 如果是目录,则递归遍历
QDir subDir(fileInfo.absoluteFilePath());
listFiles(subDir);
} else {
// 如果是文件,则打印出绝对路径
qDebug() << fileInfo.absoluteFilePath();
}
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 获取指定目录
QDir dir("/path/to/directory");
// 遍历目录下的所有文件
listFiles(dir);
return a.exec();
}
```
在这个程序中,我们定义了一个`listFiles()`函数,用于遍历目录下的所有文件和目录。这个函数接受一个`QDir`对象作为参数,表示要遍历的目录。首先,我们调用`entryInfoList()`方法获取当前目录下的所有文件和目录。然后,我们遍历这个列表,对于每一个文件或目录,判断它是不是目录,如果是目录,则递归调用`listFiles()`函数,否则打印出文件的绝对路径。
在`main()`函数中,我们首先获取要遍历的目录,然后调用`listFiles()`函数进行遍历。注意,这个程序是一个命令行程序,没有任何界面。如果需要在Qt界面中显示遍历结果,可以将打印绝对路径的部分改为将路径添加到一个`QStringList`中,然后在界面中显示这个列表。
阅读全文