C++读取文件夹中文件名以及文件路径

文章目录

  • 1 获取文件夹中所有文件名,包含子文件夹中的文件名
  • 2 获取文件夹中所有文件路径,包含子文件夹中的文件路径
  • 3 获取母文件夹中所有文件名,不包含子文件夹中的文件名
  • 4 只获取母文件夹中的文件路径,不包含子文件夹中的文件
  • 5 主函数以及文件夹情况


通过C++获取文件夹中文件名以及文件路径,包括考虑子文件夹和不考虑子文件夹两种情况。


1 获取文件夹中所有文件名,包含子文件夹中的文件名

void getFiles(string path, vector <string> & files)
{long hFile = 0;struct _finddata_t fileinfo;string pathp;if ((hFile = _findfirst(pathp.assign(path).append("\\*").c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){					getFiles(pathp.assign(path).append("/").append(fileinfo.name), files);}}else{string filestr = fileinfo.name;files.push_back(filestr);}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

在这里插入图片描述


2 获取文件夹中所有文件路径,包含子文件夹中的文件路径

void getFiles(string path, vector <string> & files)
{long hFile = 0;struct _finddata_t fileinfo;string pathp;if ((hFile = _findfirst(pathp.assign(path).append("\\*").c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){					getFiles(pathp.assign(path).append("//").append(fileinfo.name), files);}}else{string filestr = fileinfo.name;files.push_back(pathp.assign(path).append("//").append(filestr));}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

在这里插入图片描述


3 获取母文件夹中所有文件名,不包含子文件夹中的文件名

void getFiles(string path, vector <string> & files)
{long hFile = 0;struct _finddata_t fileinfo;string pathp;if ((hFile = _findfirst(pathp.assign(path).append("\\*").c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){					continue;}}else{string filestr = fileinfo.name;files.push_back(filestr);}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

在这里插入图片描述


4 只获取母文件夹中的文件路径,不包含子文件夹中的文件

void getFiles(string path, vector <string> & files)
{long hFile = 0;struct _finddata_t fileinfo;string pathp;if ((hFile = _findfirst(pathp.assign(path).append("\\*").c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){					continue;}}else{string filestr = fileinfo.name;files.push_back(pathp.assign(path).append("//").append(filestr));}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}

在这里插入图片描述


5 主函数以及文件夹情况

int main()
{string basedir = "data";vector <string> files;getFiles(basedir, files);int filenum = files.size();for (int i = 0; i < filenum; i++){cout << files[i] << endl;}system("pause");return 0;
}

data文件夹
在这里插入图片描述

result文件夹
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381754.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 获取文件路径和文件名

C 获取文件路径和文件名 就是基本的字符串截取 const char * filePath“F:\a.txt”; string filePath_strfilePath; string fileNamefilePath_str.substr(filePath.find_last_of(’\\’)1); const char *filename_cfileName.c_str(); ** 1. string 转换 成 const char *…

如何设置打印机?

1.取消禁用Guest用户&#xff0c;因为别人要访问安装打印机的按个电脑就是以guest账户访问的。 点击【开始】按钮&#xff0c;在【计算机】上右键&#xff0c;选择【管理】&#xff0c;如下图所示&#xff1a; 在弹出的【计算机管理】窗口中找到【Guest】用户 双击【Guest】&am…

Epson 打印机设置

在新到的 680 的打印机打印新的电费收据&#xff0c; 驱动选择 Windows 自带的 1600k 驱动&#xff1b;后进连打&#xff0c;左边卡位在 4 处。 一、 问题现象 如果您&#xff08;比如使用了进纸旋钮调整页顶位置之后&#xff0c;或者在使用专用软件打印套打票据的时候&a…

Excel的公式和函数

目录 运算符 地址的引用 逻辑函数 文本函数 统计函数 查找与引用函数 日期函数 常见出错信息 一、运算符 算术运算符 若要进行基本的数学运算&#xff08;如加法、减法、乘法或除法&#xff09;、合并数字以及生成数值结果&#xff0c;请使用以下算术运算符。 比较运算符 可以使…

excel 数据计算

简单计算&#xff1a; 算销售额&#xff0c;B2*C2&#xff0c;右下双击填充下面的 计算 D2&#xff1a;D6 到 D7 函数计算 日期计算 DATEDIF(start,date,end_date,unit) 返回两个日期之间的年/月/日间隔数 unit&#xff1a;有 Y&#xff1a;指时间段中的整年数 M&#xff1…

计算机二级MS office之excel常用函数

总结一下计算机二级excel中常用的函数&#xff0c;如果有错误的地方&#xff0c;希望小伙伴们可以多多指教❤️。 本文主要介绍了以下函数(可根据序号进行查阅)&#xff1a; 序号函数名称函数类别1VLOOKUP查询函数2MID、 LEFT、RIGHT文本函数3LOOKUP数组查询函数4RANK排名函数…

[Excel函数] 计算统计类函数

Excel公式规范: (1) 在Excel中输入函数时&#xff0c;是不区分大小写的 (2) 在公式函数中&#xff0c;每个参数都是用逗号分隔的 (3) 参数中的文本要用双引号引起来&#xff0c;对于单纯的数字是不用双引号的 (4) 一定要在英文半角状态下输入标点符号&#xff0c;不能在中文状态…

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Excel计算函数(计算机二级)

Excel计算函数 一、Sum()求和函数1.sum()2.sumif()3.sumifs() 二、Average()求平均值函数三、Max()求最大值函数四、Min()求最小值函数五、Count()求最个数函数1.count()2.counta()3.countif()4.countifs() 六、if()函数七、rank()排名函数 一、Sum()求和函数 1.sum() 双击底下…

【雕爷学编程】Arduino动手做(24)---水位传感器模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

哪些思维方式是你刻意训练过的?

1.管理记忆 2.贴好标签 3.放大苦难 4.绝对理性 5.自以为是 6.调整尺度 7.等价交换 8.断舍离 脑子只要醒着就不停转 18岁左右开始刻意培养自己的各种思维方式 至今6年了 1. 管理自己的脑海 有效的记忆容量是有限的 所以需要管理 更需要合适的记忆结构去管理 很多人会…

电台飞哥美食日记:三顾冒菜,一辈子最难忘的冒菜!

电台飞哥美食日记&#xff1a;三顾冒菜&#xff0c;一辈子最难忘的冒菜&#xff01; 今天&#xff08;2014年9月5日&#xff09;中午&#xff0c;成都交通广播电台《飞哥欢乐派&#xff08;FM 91.4&#xff09;》、成都电视台《吃喝玩乐全接触》的超人气主持人、成都餐饮同业公…

无线充电小车的实物图

无线充电小车的实物图

Type-c快充加无线直播麦克风方案(无线麦克风边充电)LDR6023C专业快充芯片

USB Type-C接口快充加无线麦克风应用&#xff1a; 随着互联网时代的迅速崛起&#xff0c;如今直播的主播越来越多&#xff0c;传统的耳机式直播渐渐被淘汰&#xff0c;取而代之的是无线传输&#xff0c;今天这篇文章就来讲一下无线麦克风加Type-c快充中的快速充电是怎么实现的&…

无线充电模组开发的原理和优势

现在绝大部分的电子设备&#xff0c;如手机、手表、笔记本电脑等都是通过有线的方式进行充电&#xff0c;即一端连接电子设备的充电电池&#xff0c;另一端连接交流电源。这种方式有很多危险的地方&#xff0c;首先频繁的插拔充电插头容易造成接口的损坏&#xff0c;也可能会带…

关于WPC无线充QI认证的发展

文章目录 前言一、手机无线充电的市场规模有多大二、高功率无线充已经普及三、实现高功率无线快充需要什么&#xff1f;总结 前言 从2009年第一款支持无线充电的手机Palm开始&#xff0c;手机厂商为了让用户体验到无感化的充电方式&#xff0c;对无线充电技术进行了十余年的探…

YOLOv8+ByteTrack多目标跟踪(行人车辆计数与越界识别)

课程链接&#xff1a;https://edu.csdn.net/course/detail/38901 ByteTrack是发表于2022年的ECCV国际会议的先进的多目标跟踪算法。YOLOv8代码中已集成了ByteTrack。本课程使用YOLOv8和ByteTrack对视频中的行人、车辆做多目标跟踪计数与越界识别&#xff0c;开展YOLOv8目标检测…

隐藏IOS软件

用文本编辑打开.plist文件 然后加上以下几个语句 <key>SBAppTags</key> <array> <string>hidden</string> </array>

iOS隐藏app图标探索

2019独角兽企业重金招聘Python工程师标准>>> 通过查询相关资料&#xff0c;目前找到两种解决方案&#xff0c;但是由于iOS版本的原因&#xff0c;在真机上均未成功隐藏 相关资料&#xff1a;https://www.zdziarski.com/blog/?p5072 &#xff08;关于使用SBAppTags方…

惠普HP PSC 1610 打印机驱动

惠普HP PSC 1610 打印机驱动是官方提供的一款打印机驱动&#xff0c;本站收集提供高速下载&#xff0c;用于解决打印机与电脑连接不了&#xff0c;无法正常使用的问题&#xff0c;本动适用于&#xff1a;Windows XP / Windows 7 / Windows 8 / Windows 10 32/64位操作系统。有需…