QT遍历文件夹目录图片文件的实现.docx

QT遍历文件夹目录图片文件的实现.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数码相框实现遍历文件夹图片文件 一、功能介绍: 在为数码相框所在文件系统实现 U 盘自动挂载之后,将 U 盘自动挂载在开发板上文件系统中的/mnt/usb目录,故还需为数码相框添加遍历/mnt/usb路径下的文件夹内图片文件, 暂定为扫描指定目录下一层文件夹内的图片文件。 二、参考资料: 以下一段代码为使用 QT 实现遍历文件夹和文件目录(递归法) bool FindFile(const QString path) { QDir dir(path); if (!dir.exists()) return false; dir.setFilter(QDir::Dirs|QDir::Files); dir.setSorting(QDir::DirsFirst); QFileInfoList list = dir.entryInfoList(); int i=0; do{ QFileInfo fileInfo = list.at(i); if(fileInfo.fileName()==.|fileInfo.fileName()==..) { i++; continue; } bool bisDir=fileInfo.isDir(); if(bisDir) { nFiles++; std::cout qPrintable(QString(%1 %2 %3).arg(fileInfo.size(), 10) .arg(fileInfo.fileName(),10).arg(fileInfo.path()))endl; FindFile(fileInfo.filePath()); } else{ nFiles++; std::cout qPrintable(QString(%1 %2 %3).arg(fileInfo.size(), 10) .arg(fileInfo.fileName(),10).arg(fileInfo.path()))endl; } i++; }while(ilist.size()); return true; } 三、实现过程 主要使用以下 qt类 Qdir——QDir 则可以指定目录,以取得所指定目录或其中的项目信息(档案、目录等),可以设定名称过滤、属性过滤(像是只读、档案或是目录等等)与排序,过滤与排序可以使用setNameFilter、()setFilte与r()setSorting方()法来设定,可以使用 entryList来()取得一个目录下的所有档案与子目录字符串名称,或是使用 entryInfoList传()回 QFileInfoLi,st当中包括目录中所有项目的 QFileInfo指针 QfileInf—o — QFileInfo就是用来取得指定的档案之相关讯息,像是相对或绝对路径信息、隐藏属性、大小、最后更新等,为了加快存取档案的信息,QFileInfo会快取信息,如果档 案在快取信息之后,被使用者作了修正,则可以使用 refresh(更)新 QFileInfo的信息。QFileInfo 可以是符号链接(Symbol Link)、目录或档案,由 isFile、()isDir(与) 实现代码: //初始化参数 bool RenderArea::init() { isSymLink()来作判断。 dirNum=0; /指/ 定当前目录在指定目录下一层子目录的序号 dirEndNum=0; /指/ 定指定目录下一层子目录的数量 bool reTurn=false; i_dirpic=0;图/片/ 序号dir=tr(/mnt/usb); dirlistdir; QDir picdir0(dir); //判断文件夹是否为空 if (!picdir0.exists()) { qDebug(x1); dirNum=-1; return reTurn; } picdir0.setFilter(QDir::Dirs|QDir::NoDotAndDotDot); QFileInfoList list0 = picdir0.entryInfoList(); //判断文件夹内文件夹数量是否为 0 if(list0.size()1) { qDebug(x3); return reTurn; } dirEndNum=list0.size(); //获取指定路径下一层文件夹路径列表 for(int ii=0;iilist0.size();ii++) { QFileInfo fileInfo0 = list0.at(ii); QString path=fileInfo0.filePath(); dirlistpath; } //递归遍历文件夹内图片文件 dirNum=picList(dirlist.at(dirNum))

文档评论(0)

始终如一 + 关注
官方认证
内容提供者

始终如一输出优质文档!

认证主体苏州市致远互联网科技有限公司
IP属地江苏
统一社会信用代码/组织机构代码
91320582MA27GAWJ0R

1亿VIP精品文档

相关文档