备份,怕忘了
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\n", 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/\n",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; }
时间: 2024-10-12 15:43:14