qt 实现遍历文件夹

举报
咚咚隆地咚 发表于 2022/09/22 09:58:04 2022/09/22
【摘要】 在项目中需要获取本地内容,根据逻辑,我们需要把文件夹打开,查找文件夹中的文件,并且将文件中的内容或取出来,但是想起来容易动手就不一定了。接下来介绍通过遍历文件夹,将文件夹中的内容存储起来,最终可以在项目上使用文件中的数据。 第一步:获取文件夹的目录,将目录作为参数,获取文件夹下的所有文件文件夹。 QDir dir(dirPath); QFileInfoList fil...

在项目中需要获取本地内容,根据逻辑,我们需要把文件夹打开,查找文件夹中的文件,并且将文件中的内容或取出来,但是想起来容易动手就不一定了。接下来介绍通过遍历文件夹,将文件夹中的内容存储起来,最终可以在项目上使用文件中的数据。

第一步:获取文件夹的目录,将目录作为参数,获取文件夹下的所有文件文件夹。

       QDir dir(dirPath);
       QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot | QDir::Dirs);
       
  

QDir::Files | QDir::NoDotAndDotDot | QDir::Dirs 这三个参数需要都写上,如果只写QDir::NoDotAndDotDot 可能会导致我呢见以及文件夹的隐藏无法查看。

QFileInfoList是用于获得当前文件夹下所有文件或者文件夹的基本信息

QDir::entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort)
这是entryInfoList的使用方法及其参数,而其中you“=”的参数是默认参数,在使用过程中可填可不填,根据自己的需求所定。
entryInfoList他的返回类型就是QFileInfoList,可以通过他存储,方便之后的操作。

第二步 获取列表中的文件文件夹

将刚才获取到的文件文件夹列表进行遍历,进入循环确定当前是文件夹还是文件,fileInfo.isDir() 判断当前是否为文件夹,如果是文件夹就会继续进入循环,直到查询到是文件为止!
fileInfo.isFile() 判断当前是否是文件,如果是文件的话进入内部操作文件,将文件的内容存入相对应的位置。

       
       foreach (auto fileInfo, fileInfoList) {
           if(fileInfo.isDir())
           {

               getFileListUnderDir(fileInfo.absoluteFilePath());
           }

           if(fileInfo.isFile())
           {
               //存储到相对于的位置
           }
       }

总结

文件夹的遍历应用非常的广泛,只要是对文件夹操作的,大多数都需要文件夹的遍历以及查找文件获取内容。后续也许多关于文件夹使用的方法,欢迎大家观看。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。