vector<string> getFiles(string cate_dir) { vector<string> files;//存放文件名 #ifdef WIN32 _finddata_t file; long lf; //输入文件夹路径 if ((lf = _findfirst(cate_dir.append("\\*").c_str(), &file)) == -1) { cout << cate_dir.c_str() << endl; cout << cate_dir << " not found!!!" << endl; } else { while (_findnext(lf, &file) == 0) { //输出文件名 //cout<<file.name<<endl; if (strcmp(file.name, ".") == 0 || strcmp(file.name, "..") == 0) continue; files.push_back(file.name); } } _findclose(lf); #endif #ifdef linux DIR* dir; struct dirent* ptr; char base[1000]; if ((dir = opendir(cate_dir.c_str())) == NULL) { perror("Open dir error..."); exit(1); } while ((ptr = readdir(dir)) != NULL) { if (strcmp(ptr->d_name, ".") == 0 || strcmp(ptr->d_name, "..") == 0) ///current dir OR parrent dir continue; else if (ptr->d_type == 8) ///file //printf("d_name:%s/%s\n",basePath,ptr->d_name); files.push_back(ptr->d_name); else if (ptr->d_type == 10) ///link file //printf("d_name:%s/%s\n",basePath,ptr->d_name); continue; else if (ptr->d_type == 4) ///dir { files.push_back(ptr->d_name); /* memset(base,'\0',sizeof(base)); strcpy(base,basePath); strcat(base,"/"); strcat(base,ptr->d_nSame); readFileList(base); */ } } closedir(dir); #endif //排序,按从小到大排序 sort(files.begin(), files.end()); return files; }
//检查该目录下的文件 string pmu_dir = "./data"; vector<string> files = getFiles(pmu_dir);
标签:files,name,文件名,C++,目录,base,file,ptr,dir From: https://www.cnblogs.com/clayyjh/p/16878792.html