boost::filesystem经常使用使用方法具体解释
提示:
- filesystem库提供了两个头文件,一个是<boost/filesystem.hpp>,这个头文件包括基本的库内容。它提供了对文件系统的重要操作。
同一时候它定义了一个类path。正如大家所想的。这个是一个可移植的路径表示方法,它是filesystem库的基础。
- 一个是<boost/filesystem/fstream.hpp>。是对std::fstream的一个补充,使用能够使用类boost::path作为參数。从而使得filesystem库与标准库的关系更亲热。
- 由于文件系统对于大多数系统来说都是共享的,所以不同的进程能够同一时候操作同一个对象,因此filesysetm不提供这方面的特性保证。
当然这样的保证也是不可能的。或者至少昂贵的。
- filesystem在不论什么时候,仅仅要不能完毕对应的任务。它都可能抛出 basic_filesystem_error异常。当然并不是总会抛出异常。由于在库编译的时候能够关闭这个功能。同一时候有两个函数提供了无异常版本号。这是由于在任务不能完毕时并不是是异常。
- filesystem库的全部内容定义在boost名字空间的一个下级名字空间里,它叫boost::filesytem。在使用boost.filesytem之后,链接时须要加“-lboost_filesystem-mt”选项,由于这个须要额外的链接,并不是一个纯头文件的库。
- 本文中所用boost库为1_54
#include<boost/filesystem.hpp> {boost::filesystem::path path("/test/test1"); //初始化 boost::filesystem::path old_cpath = boost::filesystem::current_path(); //取得当前程序所在文件夹 boost::filesystem::path parent_path = old_cpath.parent_path();//取old_cpath的上一层父文件夹路径 boost::filesystem::path file_path = old_cpath / "file"; //path支持重载/运算符if(boost::filesystem::exists(file_path)) //推断文件存在性 { std::string strPath = file_path.string();int x = 1;} else { //文件夹不存在; boost::filesystem::create_directory(file_path); //文件夹不存在。创建 } bool bIsDirectory = boost::filesystem::is_directory(file_path); //推断file_path是否为文件夹boost::filesystem::recursive_directory_iterator beg_iter(file_path);boost::filesystem::recursive_directory_iterator end_iter;for (; beg_iter != end_iter; ++beg_iter){if (boost::filesystem::is_directory(*beg_iter)){continue;}else{ std::string strPath = beg_iter->path().string(); //遍历出来的文件名称int x=1;}}boost::filesystem::path new_file_path = file_path / "test.txt";if(boost::filesystem::is_regular_file(new_file_path)) //推断是否为普通文件{ UINT sizefile = boost::filesystem::file_size(new_file_path); //文件大小(字节)int x =1;} boost::filesystem::remove(new_file_path);//删除文件new_file_path
}
boost::filesystem经常使用使用方法具体解释相关推荐
- 了解 Boost Filesystem Library文件系统
C++ 语言(实际上是 C++ 标准)的最常见问题之一是,缺乏定义良好的库来帮助处理文件系统查询和操作.由于这个原因,程序员不得不使用本机操作系统提供的应用程序编程接口(Application Pro ...
- Boost::filesystem的使用笔记
Boost::filesystem 使用小笔记 http://blog.csdn.net/dourgulf/article/details/8589207 boost 官方文档:http://en.h ...
- C++目录遍历:使用第三方库boost.filesystem等
1. opencv 目录文件遍历 注释:2014 0814 这个代码是基于java的,Java使用托管代码进行目录管理,C++就不那么跨平台了. 原文链接:http://blog.csdn.net/z ...
- boost Filesystem Library Version 3关于文件的一些函数封装 fsync()函数
boost boost Filesystem Library Version 3 boost::filesystem使用方法,根据路径创建文件夹 使用boost.filesystem检查文件是否存在的 ...
- C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem
原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLT ...
- boost::filesystem::directory_iterator() 出现段错误 Sementation fault
这是一个复盘帖,将遇到的boost的相关问题复盘一下, 先贴上我的代码部分: if (boost::filesystem::is_directory(mypath)) {boost::filesyst ...
- 了解 Boost Filesystem Library
C++ 语言(实际上是 C++ 标准)的最常见问题之一是,缺乏定义良好的库来帮助处理文件系统查询和操作.由于这个原因,程序员不得不使用本机操作系统提供的应用程序编程接口(Application Pro ...
- Boost filesystem学习笔记
1. 头文件 #include <boost/filesystem.hpp> 2. 函数介绍 2.1. 路径判断 boost::filesystem::system_complete(pa ...
- boost::math模块使用 Brent 方法求函数最小值的示例
boost::math模块使用 Brent 方法求函数最小值的示例 实现功能 C++实现代码 实现功能 boost::math模块使用 Brent 方法求函数最小值的示例 C++实现代码 #inclu ...
最新文章
- 海淀城市大脑建设单位“中海纪元”调研“智源研究院”
- R语言入门第五集 实验四:数据分析
- 广东省计算机大赛设计什么时候,2017年广东省大学生计算机设计大赛
- 有一种爱情叫永不改变_设计就像爱情一样,总是在寻找一种方式
- LeetCode 1289. 下降路径最小和 II(DP)
- BZOJ 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(最大生成树)
- Android 热修复的相关总结(主要是阿里百川的)
- Python爬取网易云歌词并生成词云
- 计算机端口详细介绍(整理版)
- python for ArcGIS 绘制重庆市板块地图
- 2个最好的中文图标搜索引擎
- 生产计划排程为什么会这么难?
- MATLAB | 用cftool对excel的数据进行三维曲线拟合
- 企业培训管理——学习平台应用功能
- 以前的java单机游戏过关长剑,玩过这些经典单机游戏_就说明你已经老了
- 高德地图API行政区域查询
- 万维网之父要推翻自己一手开创的互联网世界!
- ASP.NET统计在线人数
- Java常用工具包 Jodd jar包
- C#项目中所有的窗体排版都乱了