首先是声明部分
static void searchFilesInPath(QString pathName,QStringList& Files,QDir::Filter filters = QDir::AllEntries);//深度遍历,递归
然后是实现
void FileCopy::searchFilesInPath(QString pathName,QStringList& Files,QDir::Filter filters)
{
QDir thisPath(pathName);
QStringList tempStrList;
tempStrList=thisPath.entryList(filters,QDir::DirsFirst);
tempStrList.removeAt(1);//删除“..”
tempStrList.removeAt(0);//删除“.”
QString tempStr;
for(int i=0;i<tempStrList.count();i++)
{
tempStr = pathName+"/"+tempStrList.at(i);
tempStrList.replace(i,tempStr);
}
Files=Files+tempStrList;//添加进列表
QStringList tempDirList;
tempDirList=thisPath.entryList(QDir::Dirs,QDir::DirsFirst);
tempDirList.removeAt(1);//删除“..”
tempDirList.removeAt(0);//删除“.”
//子目录递归
for(int i=0;i<tempDirList.count();i++)
{
searchFilesInPath(pathName+"/"+tempDirList.at(i),Files,filters);
}
}
大致思路是先把本目录的信息存进字串表中,然后进入下一级,再下一级如此类推
调用部分
QStringList tempStrList;
searchFilesInPath(strSourcePath,tempStrList);
for(int i=0;i<tempStrList.count();i++)
{
qDebug()<<tempStrList.at(i);
}
显示效果如下:
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/goto"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/1_7594.jpg"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/3666689_980x1200_0.png"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/translate.txt"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/texture"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/傅.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/傅.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/击甸.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/击甸.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/努反.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/努反.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/合.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/合.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/吩靛.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/吩靛.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/咀胶.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/咀胶.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/唱捞橇.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/唱捞橇.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/啊靛.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/啊靛.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/墨鸥唱.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/墨鸥唱.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/墨鸥福.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/墨鸥福.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/夸沥狼蓖.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/夸沥狼蓖.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/宏肺摹.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/宏肺摹.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/官捞棵赴.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/官捞棵赴.spr"
"E:/workspace/ROClinetFileManeger/ROClinetFileManeger/test/data/sprite/酒捞袍/家靛.act"
"E:/workspace/ROClinetFileManeger/ROClinetFileManege