logo

如何在Qt中遍历文件夹并读取文件名

作者:半吊子全栈工匠2024.01.18 08:19浏览量:170

简介:在Qt中遍历文件夹并读取文件名需要使用QDir和QFileInfo类。以下是一个简单的例子,展示了如何使用这些类来遍历指定目录下的所有文件和子目录。

要在Qt中遍历文件夹并读取文件名,你可以使用QDir和QFileInfo类。这些类提供了一种方便的方式来遍历目录结构和获取文件信息。
下面是一个简单的例子,展示了如何使用这些类来遍历指定目录下的所有文件和子目录:

  1. #include <QDir>
  2. #include <QFileInfoList>
  3. #include <QDebug>
  4. void traverseDirectory(const QString &path) {
  5. QDir dir(path);
  6. dir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
  7. // 获取目录下的所有文件和子目录
  8. QFileInfoList list = dir.entryInfoList();
  9. // 遍历文件和子目录
  10. foreach (const QFileInfo &fileInfo, list) {
  11. // 如果是文件,则打印文件名
  12. if (fileInfo.isFile()) {
  13. qDebug() << fileInfo.absoluteFilePath();
  14. }
  15. // 如果是目录,则递归调用 traverseDirectory() 函数
  16. else if (fileInfo.isDir()) {
  17. traverseDirectory(fileInfo.absoluteFilePath());
  18. }
  19. }
  20. }

在上面的代码中,我们首先创建了一个QDir对象,并指定要遍历的目录路径。然后,我们设置了过滤器,以便包括所有文件、目录以及排除当前目录和父目录。接下来,我们使用entryInfoList()函数获取目录下的所有文件和子目录的信息,并使用foreach循环遍历它们。如果当前项是一个文件,我们就打印出文件的绝对路径。如果当前项是一个目录,我们就递归调用traverseDirectory()函数来遍历该子目录。
你可以根据自己的需求修改这个函数,比如修改过滤器、添加错误处理等。希望这个例子能帮助你理解如何在Qt中遍历文件夹并读取文件名。

相关文章推荐

发表评论

活动