c++ 读取特定路径下文件夹及文件名的方法
2022/6/3 1:21:44
本文主要是介绍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); } }
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一下;
这篇关于c++ 读取特定路径下文件夹及文件名的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享