新闻中心
C++如何遍历文件夹下的所有文件_C++17 filesystem目录遍历

从C++17开始,std::filesystem 提供了便捷的方式来遍历文件夹中的所有文件和子目录。这个功能包含在
启用 filesystem 支持
要使用 filesystem,需要:
- 包含头文件:#include
- 使用命名空间:通常使用 namespace fs = std::filesystem;
- 编译时启用 C++17 并链接必要的库(如 libstdc++fs)
例如,g++ 编译命令:
g++ -std=c++17 your_file.cpp -lstdc++fs遍历目录中的所有条目
使用 fs::directory_iterator 可以遍历指定目录下的所有条目(包括文件和文件夹):
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
std::string path = "./test_folder"; // 替换为你的路径
for (const auto& entry : fs::directory_iterator(path)) {
std::cout << entry.path() << std::endl;
}
return 0;
}这段代码会输出目录中每个文件或子目录的完整路径。
区分文件和目录
可以使用 is_regular_file() 和 is_directory() 来判断类型:
美图云修
商业级AI影像处理工具
50
查看详情
for (const auto& entry : fs::directory_iterator(path)) {
if (entry.is_regular_file()) {
std::cout << "文件: " << entry.path().filename() << std::endl;
} else if (entry.is_directory()) {
std::cout << "目
录: " << entry.path().filename() << std::endl;
}
}递归遍历所有子目录
使用 fs::recursive_directory_iterator 可以深入遍历所有层级的子目录:
for (const auto& entry : fs::recursive_directory_iterator(path)) {
std::cout << entry.path() << std::endl;
}这将列出目录树中所有的文件和子目录,深度优先顺序。
只遍历特定类型的文件(如 .txt)
可以在循环中加入过滤条件:
for (const auto& entry : fs::recursive_directory_iterator(path)) {
if (entry.is_regular_file() && entry.path().extension() == ".txt") {
std::cout << "文本文件: " << entry.path() << std::endl;
}
}extension() 返回文件扩展名,注意它包含点号(如 ".jpg")。
基本上就这些。C++17 的 filesystem 让目录操作变得直观且跨平台。只要注意编译器支持和链接问题,就能轻松实现文件遍历功能。
以上就是C++如何遍历文件夹下的所有文件_C++17 filesystem目录遍历的详细内容,更多请关注其它相关文章!
# 配置文件
# 软文营销推广广告
# 民权平台网站建设
# seo站前准备
# 万州科技网站优化
# 如何推广一个淘宝客网站
# 南昌网站建设运营
# 声音优化工具网站有哪些
# 宁波全套网站建设
# 营口seo教程如何赚钱
# 实事热点营销公众号推广
# 就能
# 结构化
# 文件遍历
# 如何使用
# 绑定
# 尼克
# 头文件
# 美图
# 递归
# 遍历
# stream
# ios
# ai
# c++
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
微信网页版官方入口直达 微信网页版网页版登录使用方法
CSS Box Model与弹性按钮:维持布局稳定的动画实践
痛风发作了怎么办? 快速止痛和后期饮食调理
外媒分析《GTA6》定价:卖100美元可以但真没必要!
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
J*a应用程序首次运行自动创建文件与目录的最佳实践
mysql备份恢复性能优化_mysql备份恢复性能优化方法
C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池
包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
Surface怎么安装系统 微软Surface Pro U盘重装win11教程
sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE
提升Kafka消费者健壮性:会话超时处理与消息处理语义
12306选座系统怎么选连座_12306选座多人连坐操作方法
Django表单验证失败时保留用户输入数据的最佳实践
深入理解J*aScript中的B样条曲线与节点向量生成
顺丰快件物流信息 官方网站查询入口
Go RPC HTTP服务正确实现与常见陷阱解析
Lar*el 递归关系中排除指定分支的教程
FullCalendar 自定义按钮样式定制指南
谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法
Golang如何实现Web文件静态资源服务器_Golang静态资源服务器开发与实践
地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站
c++中为什么推荐使用using替代typedef_c++现代化类型别名
知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法
12306选座如何查看座位示意图_12306座位示意图解读与使用
微博网页版首页入口 微博电脑端官网登录链接
12306怎么选座位选到安静区_12306选座安静区域选择策略
C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
Mac终端命令大全_Mac常用Terminal指令速查
Lar*el Form Request中唯一性验证在更新操作中的正确实现
4399网页游戏电脑版全新入口 4399电脑端在线玩指南
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
优酷会员付费后没到账怎么办_优酷会员充值异常及解决方法
学习通在线学习平台 学习通网页版直接进入课程中心
Android Studio计算器C键逻辑错误排查与修复:条件判断优化指南
蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址
Steam官网入口直达 Steam注册及登录步骤
Yandex免登录网页版地址 Yandex搜索引擎官方访问入口
百度网盘网页版入口 百度网盘网页版官方登录网址
Angular中单选按钮的正确使用与常见陷阱解析
动漫岛观看全网网 动漫岛在线正版动漫入口
2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南
PySpark中从现有列右侧提取可变长度字符创建新列的教程
qq音乐在线播放入口_qq音乐电脑版登录链接
Eclipse怎么运行工程_Eclipse工程运行配置说明
如何提高微信支付的安全性_微信支付安全防护与设置建议


2025-11-25
浏览次数:次
返回列表
录: " << entry.path().filename() << std::endl;
}
}