备份,怕忘了
static std::vector<string> getFilePathAtVec(string folderPath, int depth) { std::vector<string> path_vec; DIR *dp; struct dirent *entry; struct stat statbuf; if((dp = opendir(folderPath.c_str())) == NULL) { fprintf(stderr,"cannot open directory: %s ", folderPath.c_str()); return path_vec; } chdir(folderPath.c_str()); while((entry = readdir(dp)) != NULL) { lstat(entry->d_name,&statbuf); if(S_ISDIR(statbuf.st_mode)) { if(strcmp(".",entry->d_name) == 0 || strcmp("..",entry->d_name) == 0) continue; printf("%*s%s/ ",depth,"",entry->d_name); getFilePathAtVec(entry->d_name,depth+4); } else { string filename = entry->d_name; path_vec.push_back(filename); } } chdir(".."); closedir(dp); return path_vec; }