std::filesystem 是 C++17 引入的跨平台文件系统操作标准库,需 C++17 支持、包含 头文件并推荐使用 fs::path 类型与异常安全操作。
std::filesystem 是 C++17 引入的标准库模块,用于跨平台地操作文件和目录。它替代了过去依赖系统 API(如 Windows 的 FindFirstFile 或 POSIX 的 opendir)的繁琐写法,接口统一、语义清晰、异常安全。
使用前需确保编译器支持 C++17(如 GCC 8+、Clang 7+、MSVC 2017 15.7+),并在代码中:
#include
namespace fs = std::filesystem;(推荐别名,避免重复输入)-lstdc++fs(GCC 9+ 可能不再需要)fs::path 是核心类型,不是字符串容器,而是路径的逻辑表示,自动处理分隔符(/ 或 \)和编码细节。
fs::path p = "data/config.txt"; 或 fs::path p("logs") / "app.log";(/ 是重载的拼接操作符)fs::absolute(p)(基于当前工作目录)p.lexically_normal() 消除 ./、../ 等冗余部分p.parent_path()、p.filename()、p.extension()(返回 .txt)用 fs::status() 或快捷函数判断存在性与类型,避免竞态条件(检查后被删除):
fs::exists(p)
fs::is_regular_file(p)、fs::is_directory(p)、fs::is_symlink(p)
for (const auto& entry : fs::recursive_directory_iterator("src")) { ... }
fs::directory_iterator("build")(只扫一层)每个 directory_entry 支持 entry.path()、entry.is_directory()、entry.file_size() 等便捷访问。
动、删除所有操作默认抛出 fs::filesystem_error 异常(可传入 std::error_code& 参数转为错误码处理):
fs::create_directories("a/b/c");(自动创建中间不存在的目录)fs::copy_file("src.txt", "dst.txt", fs::copy_options::overwrite_existing);
fs::rename("old.txt", "new.txt");(原子操作,跨卷时为复制+删除)fs::remove("temp.log");
fs::remove_all("build/");
基本上就这些。用好 fs::path 和异常处理,就能写出健壮、可移植的文件操作代码。不复杂但容易忽略细节——比如路径拼接别用 +,要用 /;判断存在性后立刻操作,避免竞态;跨平台时慎用硬编码的分隔符。
# windows
# 编码
# app
# c++
# win
# 标准库
# for
# 命名空间
# include
# Filesystem
# const
# auto
# 字符串
# 递归
# 接口
# Namespace
# 遍历
# 头文件
# 文件系统
# 分隔符
# 就能
# 推荐使用
# 并在
# 要用
# 不存在
相关文章:
建站之星后台管理:高效配置与模板优化提升用户体验
SQL查询语句优化的实用方法总结
如何基于PHP生成高效IDC网络公司建站源码?
重庆市网站制作公司,重庆招聘网站哪个好?
如何通过多用户协作模板快速搭建高效企业网站?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
成都网站制作公司哪家好,四川省职工服务网是做什么用?
香港服务器WordPress建站指南:SEO优化与高效部署策略
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站主机与虚拟主机有何区别?如何选择最优方案?
,网站推广常用方法?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
网站制作费用多少钱,一个网站的运营,需要哪些费用?
如何快速生成可下载的建站源码工具?
如何配置支付宝与微信支付功能?
高端建站三要素:定制模板、企业官网与响应式设计优化
婚礼视频制作网站,学习*后期制作的网站有哪些?
制作营销网站公司,淘特是干什么用的?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
高性价比服务器租赁——企业级配置与24小时运维服务
已有域名和空间如何搭建网站?
如何在服务器上三步完成建站并提升流量?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何用y主机助手快速搭建网站?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
如何在局域网内绑定自建网站域名?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
网站按钮制作软件,如何实现网页中按钮的自动点击?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
阿里云网站制作公司,阿里云快速搭建网站好用吗?
建站上传速度慢?如何优化加速网站加载效率?
如何在IIS中新建站点并解决端口绑定冲突?
,网页ppt怎么弄成自己的ppt?
如何选择靠谱的建站公司加盟品牌?
外贸公司网站制作哪家好,maersk船公司官网?
如何选择可靠的免备案建站服务器?
建站VPS选购需注意哪些关键参数?
清除minerd进程的简单方法
如何快速搭建高效香港服务器网站?
如何在阿里云通过域名搭建网站?
代刷网站制作软件,别人代刷火车票靠谱吗?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何在宝塔面板创建新站点?
如何在景安云服务器上绑定域名并配置虚拟主机?
*请认真填写需求信息,我们会在24小时内与您取得联系。