文件目录操作有很多方式,有许多Windows API可用,不过用起来不是那么方便。今天说一下C++11提供的文件目录操作的标准库。

头文件与命名空间:

头文件只需要#include <filesystem>

C++11时还在TR2里面

C++11的命名空间为std::tr2::sys

C++17时已经正式引入了

C++17的命名空间为std::filesystem

路径类path:

路径使用的是path类,可以直接用字符串构造如:   sys::path test_file("D:\\a\\b.txt");

路径包含许多常用操作,比如

获取根目录root_path()

获取带扩展名的文件名filename()

获取不带扩展名的文件名stem()

获取扩展名extension()

获取父目录parent_path()

是否是绝对路径 is_absolute()

转成字符串string()

通用函数:

文件是否存在exists

文件大小file_size

文件修改时间last_write_time

创建单个目录create_directory

递归创建目录create_directories

删除目录remove_directory

删除文件Remove

递归删除目录remove_all

重命名Rename

拷贝文件copy_file

是否是目录is_directory

目录遍历:

遍历目录可以用迭代器方式遍历:

sys::path src_dir("F:\\download");//或者const string src_dir = "F:\\download";
set<string> dir_set;
for (sys::directory_iterator end, ite(src_dir); ite != end; ++ite)
{if(!is_directory(ite->path()))dir_set.insert(ite->path().filename().string());
};

另一种是递归遍历目录 只需要把directory_iterator改成recursive_directory_iterator就可以了:

for (sys::recursive_directory_iterator end, ite(src_dir); ite != end; ++ite)
{if(!is_directory(ite->path()))dir_set.insert(ite->path().filename().string());
}

Filesystem基本上涵盖了常用的文件操作,满足项目需求,还有很多非常用的比如权限、软链接、磁盘空间、目录拼接等等都有,详细的内容可以直接看filesystem头文件或者查看官方文档。

C++11文件目录操作简介相关推荐

  1. 你一定要知道的关于Linux文件目录操作的12个常用命令

    博客园 首页 新随笔 联系 管理 订阅 随笔- 26  文章- 1  评论- 18  你一定要知道的关于Linux文件目录操作的12个常用命令 转自:http://www.cnblogs.com/yo ...

  2. oracle kepserve,Kepware.KEPServer\KEPServerEX_V5操作简介含opc quick client 连接测试

    [实例简介] Kepware.KEPServer\KEPServerEX_V5操作简介含opc quick client 连接测试 3.開魯 KEPServereX的管理視窗 請從「開始」->「 ...

  3. Git笔记(11) 分支简介

    Git笔记(11) 分支简介 1. Git 分支 2. 简介 3. 创建 4. 查看当前分支 5. 切换 6. 分叉 1. Git 分支 使用分支可以把工作 从开发主线上分离 开来,以免影响开发主线 ...

  4. JMeter入门操作简介

    JMeter入门操作简介 1.JMter简介及作用 JMter是Apache公司用Java开发的一款测试工具 接口测试.性能测试.数据库测试.java程序测试. 可以对服务器.网络或者对象模拟巨大的负 ...

  5. Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)

    文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...

  6. python中常见的流程结构-Python分支结构(switch)操作简介

    Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...

  7. paip.文件目录操作uAPI php python java对照

    paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...

  8. python分支switch_Python分支结构(switch)操作简介

    Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...

  9. python中分支结构包括哪些_Python分支结构(switch)操作简介

    Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...

最新文章

  1. RDKit | BCUT:基于分子图结构的二维描述符
  2. vue-ueditor 后端配置项没有正常加载_nginx配置websocket
  3. D1net阅闻:思科占全球交换路由器53%市场份额
  4. Kafka项目实战-用户日志上报实时统计之编码实践
  5. ABAP如何检查字符串是否为日期或时间格式
  6. ORA-12154: TNS:could not resolve the connect identifier specified. Solved.
  7. java中 静态方法与成员方法何时使用
  8. C#按Esc后退出对话框
  9. Java 针对每个人安装的位置不同的情况 从快捷方式中获取到安装位置 运行谷歌浏览器
  10. 复杂c语言游戏程序代码,【计算机】c语言经典游戏代码分享!
  11. MCMC采样算法理解
  12. PHP 实现 阿里云 短信接口调用
  13. 计算机基本办公软件应用技能有哪些,办公人员应掌握哪些办公软件技能
  14. python zipfile压缩_python:用 zipfile 模块压缩文件-压缩文件格式
  15. sed -n使用变量
  16. 笔记本电脑重装win10系统图文并茂详细操作教程(U盘重装系统)
  17. 域名设置A记录或CNAME记录,但无法被解析,可能是因为状态为:clientHold
  18. 20145212 罗天晨 WEB登陆发贴及会话管理功能的实现
  19. Linux修改网卡设置
  20. iOS-自己定义键盘选择器

热门文章

  1. 生产环境不同问题定位及分析
  2. 关于 jupyter notebook 运行时不再显示结果,行头提示符变 In [*] 的解决办法
  3. 服务器带宽运营商排行,电信和移动哪个网速快(三大运营商4g网速排名)
  4. Vue2.x 核心基础(Vue概述,Vue基本使用,@vue/cli脚手架,Element-UI 的基本使用,Vue模板语法)
  5. POJ 3618 Exploration
  6. 算法与程序设计——由a-z,0-9组成3位的字符密码
  7. Tracker--追踪者
  8. 如何安装博通 BCM43142 网卡驱动
  9. 基于L2,1范数的特征选择方法
  10. 腾讯各事业群裁员比例没有网传30%那么高;郭明錤称苹果汽车团队已解散;Go 1.18 发布,正式支持泛型|极客头条