QT遍历获取指定层数子目录

QT提供了非常方便的方法用于获取文件路径等信息,本文参考
  http://blog.csdn.net/markely/article/details/8178750
在其基础上添加了递归的次数限定。

1
int getFolders(const QString path, int level, QFileInfoList *folders) { 2 QDir dir(path); 3 if (!dir.exists() || level < 1) { 4 return 0; 5 } 6 7 QFileInfoList *subFolders = new QFileInfoList; 8 *subFolders = dir.entryInfoList(QDir::Dirs, 9 QDir::Name);//获取当前路径下的文件夹路径 10 11 QFileInfoList::Iterator iterator = subFolders->begin(); 12 while (iterator != subFolders->end()) { 13 if ((*iterator).fileName() == QLatin1String(".") 14 || (*iterator).fileName() == QLatin1String("..")); 15 else { 16 QString m = (*iterator).absoluteFilePath() + QLatin1String("/"); 17 int newLevel = level - 1; 18 getFolders(m, newLevel, folders);//递归获取下一级文件夹路径 19 } 20 ++iterator; 21 } 22 23 *folders += *subFolders; 24 subFolders->clear(); 25 return folders->count(); 26 }

 

posted @ 2017-10-20 19:50  莎诃  阅读(870)  评论(0)    收藏  举报