c++ 读取特定路径下文件夹及文件名的方法
#include <vector> #include <fstream> #include <string> #include <sstream> #include <iostream> #include <io.h> /// <summary> /// 读取指定路径下所有文件名及子目录下文件名 /// </summary> /// <param name="path"></param> /// <param name="files"></param> void getFilesAll(string path, vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) { do { if ((fileinfo.attrib & _A_SUBDIR)) { if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) { //files.push_back(p.assign(path).append("\\").append(fileinfo.name)); getFilesAll(p.assign(path).append("\\").append(fileinfo.name), files); } } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } } while (_findnext(hFile, &fileinfo) == 0); } } /// <summary> /// 指定当下路径下文件夹名 /// </summary> /// <param name="path"></param> /// <param name="files"></param> void getJustCurrentDir(string path, vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) { do { if ((fileinfo.attrib & _A_SUBDIR)) { if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) { files.push_back(fileinfo.name); //files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } } } while (_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } /// <summary> /// 读取指定路径下文件名 /// </summary> /// <param name="path"></param> /// <param name="files"></param> void getJustCurrentFile(string path, vector<string>& files) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) { do { if ((fileinfo.attrib & _A_SUBDIR)) { } else { files.push_back(fileinfo.name); //files.push_back(p.assign(path).append("\\").append(fileinfo.name)); } } while (_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | int main() { string filePath = "C:\\Users\\20220601_155213\\198-1" ; vector<string> files; //char* distAll = "AllFiles.txt"; getJustCurrentFile(filePath, files); // 文件输出测试 string distAll = "AllFiles.csv" ; // 文件存储在工程目录下 string distAll = "AllFiles.txt" ; // 文件存储在工程目录下 ofstream ofn(distAll); int size = files.size(); ofn << size << endl; for ( int i = 0; i < size; i++) { ofn << files[i] << endl; } ofn.close(); getJustCurrentDir(filePath, files); getFilesAll(filePath, files); } |
调试通过,mark一下;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)