#include "FileSystemUtil.h" #ifndef _WIN32 #include #include #include #include #include #include #include #include void _FindFileRev(const std::string& dirname, const int skiplevel,const int maxlevel,int nowlevel, const std::function& func) { DIR* Dir = NULL; struct dirent* file = NULL; if ((Dir = opendir(dirname.c_str())) == NULL) { return ; } while ((file = readdir(Dir)) != nullptr) { if (file->d_type == DT_REG) { if(nowlevel>skiplevel) func(dirname + file->d_name); } else if (file->d_type == DT_DIR && strcmp(file->d_name, ".") != 0 && strcmp(file->d_name, "..") != 0) { if(maxlevel<1 || nowleveld_name + "/" ,skiplevel,maxlevel,nowlevel+1,func); } } } closedir(Dir); } void FindFileRev(const std::string& dirname, const int skiplevel,const int maxlevel, const std::function& func) { if (dirname[dirname.size()-1] != '/') { string curDir=dirname+"/"; _FindFileRev(curDir,skiplevel,maxlevel,1,func); } else { _FindFileRev(dirname,skiplevel,maxlevel,1,func); } } #endif // _WIN32