遍历给定文件夹下所有子目录
void getAllFolds(const QString& foldPath,QStringList &folds){
QDirIterator it(foldPath,QDir::Dirs | QDir::NoDotAndDotDot ,QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();
QFileInfo fileInfo = it.fileInfo();
folds << fileInfo.absoluteFilePath();
}
}
遍历给定文件夹下所有文件及其子目录下所有文件
void getAllFiles(const QString& foldPath,QStringList &folds,const QStringList& formats) {
QDirIterator it(foldPath,QDir::Files | QDir::NoDotAndDotDot ,QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();
QFileInfo fileInfo = it.fileInfo();
if(formats.contains(fileInfo.suffix())) {
folds << fileInfo.absoluteFilePath();
}
}
}
测试
void test1()
{
QStringList folds;
getAllFolds("C:/User/Administrator/Desktop/jpgDir",folds);
qDebug() << folds;
}
void test2()
{
QStringList folds;
QStringList fmt = QString("jpg;png").split(';');
getAllFiles("C:/User/Administrator/Desktop/jpgDir",folds,fmt);
qDebug() << folds;
}
int main(int argc, char *argv[])
{
test1();
test2();
return 0;
}