C++11文件目录操作简介
文件目录操作有很多方式,有许多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文件目录操作简介相关推荐
- 你一定要知道的关于Linux文件目录操作的12个常用命令
博客园 首页 新随笔 联系 管理 订阅 随笔- 26 文章- 1 评论- 18 你一定要知道的关于Linux文件目录操作的12个常用命令 转自:http://www.cnblogs.com/yo ...
- oracle kepserve,Kepware.KEPServer\KEPServerEX_V5操作简介含opc quick client 连接测试
[实例简介] Kepware.KEPServer\KEPServerEX_V5操作简介含opc quick client 连接测试 3.開魯 KEPServereX的管理視窗 請從「開始」->「 ...
- Git笔记(11) 分支简介
Git笔记(11) 分支简介 1. Git 分支 2. 简介 3. 创建 4. 查看当前分支 5. 切换 6. 分叉 1. Git 分支 使用分支可以把工作 从开发主线上分离 开来,以免影响开发主线 ...
- JMeter入门操作简介
JMeter入门操作简介 1.JMter简介及作用 JMter是Apache公司用Java开发的一款测试工具 接口测试.性能测试.数据库测试.java程序测试. 可以对服务器.网络或者对象模拟巨大的负 ...
- Python|并发编程|爬虫|单线程|多线程|异步I/O|360图片|Selenium及JavaScript|Scrapy框架|BOM 和 DOM 操作简介|语言基础50课:学习(12)
文章目录 系列目录 原项目地址 第37课:并发编程在爬虫中的应用 单线程版本 多线程版本 异步I/O版本 总结 第38课:抓取网页动态内容 Selenium 介绍 使用Selenium 加载页面 查找 ...
- python中常见的流程结构-Python分支结构(switch)操作简介
Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...
- paip.文件目录操作uAPI php python java对照
paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...
- python分支switch_Python分支结构(switch)操作简介
Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...
- python中分支结构包括哪些_Python分支结构(switch)操作简介
Python当中并无switch语句,本文研究的主要是通过字典实现switch语句的功能,具体如下. switch语句用于编写多分支结构的程序,类似与if-.elif-.else语句. switch语 ...
最新文章
- RDKit | BCUT:基于分子图结构的二维描述符
- vue-ueditor 后端配置项没有正常加载_nginx配置websocket
- D1net阅闻:思科占全球交换路由器53%市场份额
- Kafka项目实战-用户日志上报实时统计之编码实践
- ABAP如何检查字符串是否为日期或时间格式
- ORA-12154: TNS:could not resolve the connect identifier specified. Solved.
- java中 静态方法与成员方法何时使用
- C#按Esc后退出对话框
- Java 针对每个人安装的位置不同的情况 从快捷方式中获取到安装位置 运行谷歌浏览器
- 复杂c语言游戏程序代码,【计算机】c语言经典游戏代码分享!
- MCMC采样算法理解
- PHP 实现 阿里云 短信接口调用
- 计算机基本办公软件应用技能有哪些,办公人员应掌握哪些办公软件技能
- python zipfile压缩_python:用 zipfile 模块压缩文件-压缩文件格式
- sed -n使用变量
- 笔记本电脑重装win10系统图文并茂详细操作教程(U盘重装系统)
- 域名设置A记录或CNAME记录,但无法被解析,可能是因为状态为:clientHold
- 20145212 罗天晨 WEB登陆发贴及会话管理功能的实现
- Linux修改网卡设置
- iOS-自己定义键盘选择器
热门文章
- 生产环境不同问题定位及分析
- 关于 jupyter notebook 运行时不再显示结果,行头提示符变 In [*] 的解决办法
- 服务器带宽运营商排行,电信和移动哪个网速快(三大运营商4g网速排名)
- Vue2.x 核心基础(Vue概述,Vue基本使用,@vue/cli脚手架,Element-UI 的基本使用,Vue模板语法)
- POJ 3618 Exploration
- 算法与程序设计——由a-z,0-9组成3位的字符密码
- Tracker--追踪者
- 如何安装博通 BCM43142 网卡驱动
- 基于L2,1范数的特征选择方法
- 腾讯各事业群裁员比例没有网传30%那么高;郭明錤称苹果汽车团队已解散;Go 1.18 发布,正式支持泛型|极客头条