如何在Qt中遍历文件夹并读取文件名
2024.01.18 08:19浏览量:170简介:在Qt中遍历文件夹并读取文件名需要使用QDir和QFileInfo类。以下是一个简单的例子,展示了如何使用这些类来遍历指定目录下的所有文件和子目录。
要在Qt中遍历文件夹并读取文件名,你可以使用QDir和QFileInfo类。这些类提供了一种方便的方式来遍历目录结构和获取文件信息。
下面是一个简单的例子,展示了如何使用这些类来遍历指定目录下的所有文件和子目录:
#include <QDir>#include <QFileInfoList>#include <QDebug>void traverseDirectory(const QString &path) {QDir dir(path);dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);// 获取目录下的所有文件和子目录QFileInfoList list = dir.entryInfoList();// 遍历文件和子目录foreach (const QFileInfo &fileInfo, list) {// 如果是文件,则打印文件名if (fileInfo.isFile()) {qDebug() << fileInfo.absoluteFilePath();}// 如果是目录,则递归调用 traverseDirectory() 函数else if (fileInfo.isDir()) {traverseDirectory(fileInfo.absoluteFilePath());}}}
在上面的代码中,我们首先创建了一个QDir对象,并指定要遍历的目录路径。然后,我们设置了过滤器,以便包括所有文件、目录以及排除当前目录和父目录。接下来,我们使用entryInfoList()函数获取目录下的所有文件和子目录的信息,并使用foreach循环遍历它们。如果当前项是一个文件,我们就打印出文件的绝对路径。如果当前项是一个目录,我们就递归调用traverseDirectory()函数来遍历该子目录。
你可以根据自己的需求修改这个函数,比如修改过滤器、添加错误处理等。希望这个例子能帮助你理解如何在Qt中遍历文件夹并读取文件名。

发表评论
登录后可评论,请前往 登录 或 注册