fzw003 |
2019-12-03 16:47 |
加个递归吧。 int frmPngTool::FindFile(const QString& _filePath) { QDir dir(_filePath); if (!dir.exists()) { return -1; }
//取到所有的文件和文件名,但是去掉.和..的文件夹(这是QT默认有的) dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);
//文件夹优先 dir.setSorting(QDir::DirsFirst);
//转化成一个list QFileInfoList list = dir.entryInfoList(); QStringList filter; filter << "*.png"; QStringList infolist = dir.entryList(filter);
if(list.size()< 1 ) { return -1; } int i=0;
//递归算法的核心部分 do{ QFileInfo fileInfo = list.at(i); //如果是文件夹,递归 bool bisDir = fileInfo.isDir(); if(bisDir) { FindFile(fileInfo.filePath()); } else{ for(int m = 0; m <infolist.size(); m++) { //这里是获取当前要处理的文件名 // qDebug() <<_filePath + "/" + infolist.at(m); files.append(_filePath + "/" + infolist.at(m)); } break; }//end else i++; } while(i < list.size()); } |
|