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 }
——无善无恶心之体,
有善有恶意之动,
知善知恶是良知,
为善去恶是格物

浙公网安备 33010602011771号