Visual Studio 2015 编译与使用Boost库进行文件与目录的操作
前言
1.Boost库是一个功能非常强大的跨平台开源C++库,我这里只演示如何在win7下visual studio 2015里做boost库的boost::filesystem来操作文件、目录。
2.我的环境是windows 7 64位,visual studio 2015,所用的boost库是boost_1_66_0-msvc-11.0-64.exe,boost的各个版本可以从这里下载,我用的版本csdn的下载地址:https://download.csdn.net/download/matt45m/11090742。
一、安装与配置Boost库
1.下载boost库之后开始安装,更改自己想要安装在的路径。
安装之后的目录如下:
2.新建一个项目vs2015的C++项目,选自己存放项目的路径。
(1)新建一个项目。
(2)选择项目类型,输入项目名,点确定。
(3)从视图调出属性窗口。
2.开始配置boost的相关路径。
(1)点属性管理器,打开属性对话框,我这里配置的是 Debug 64位。
(2)设置相VC++目录,包含的目录与库目录,看着自己的环境配置这两个目录。
(3)链接器的路径配置,确定,配置完成。
二、使用boost库操作文件与目录
1.在当前项目中添加一个源文件,引入文件相关的头文件和定义一个名字空间。
#include<boost/filesystem.hpp>
//定义一个boost库的命名空间
namespace fs = boost::filesystem;
2.文件操作代码演示
(1)全局函数判断当前路径。
//初始化一个路径string dir_path = "F:/train_faces/";//判断传入路径是否存在if (fs::exists(dir_path)){std::cout << "当前传入的目录存在!" << endl;}//判断传入的路径是否为目录if (fs::is_directory(dir_path)){std::cout << "当前传入的路径是目录" << endl;}//判断传入的目录是否为空if (!fs::is_empty(dir_path)){std::cout << "当前传入的目录不为空目录" << endl;}
(2)遍历当前目录下的子文件。
//只遍历当前路径下第一层文件fs::directory_iterator begin_iter(dir_path);fs::directory_iterator end_iter;for(;begin_iter != end_iter; begin_iter++ ){string file_name = begin_iter->path().string();std::cout << file_name << endl;}
(3)递归遍历当前路径下所有子文件。
//递归遍历当前目录下的所有子文件fs::recursive_directory_iterator begin(dir_path);fs::recursive_directory_iterator end;for (; begin != end; begin++){string file_name = begin->path().string();std::cout << file_name << endl;}
输出结果:
(3)文件相关的操作。
//初始化一个路径string dir_path = "F:/train_faces/01/1.pgm";boost::filesystem::path filePath(dir_path);//得到当前文件父目录("F:/train_faces/01/")cout << filePath.parent_path() << endl; //得到当前文件名("1.pgm")cout << filePath.filename() << endl; //得到当前文件名转为string("1.pgm")cout << filePath.filename().string() << endl;//得到当前文件名不包括扩展名("1")cout << filePath.stem() << endl; //得到当前文件扩展名(".pgm")cout << filePath.extension() << endl;
结语
1.boost是一个强大的C++库,文件操作只是其中的一小部分功能,如果要使用可以看官方的文档或者相关书箱。
2.关于boost库的使用,如果有兴趣的可以加群:487350510互相讨论学习。
Visual Studio 2015 编译与使用Boost库进行文件与目录的操作相关推荐
- 用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面
用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面!!! 开发工具:Visual Studio 2015 企业版 目 标 机:Windows 1 ...
- 使用 Visual Studio 2015 编译 BitShares-Core
0. 环境准备 * 64 位 Windows 系统,比如 Windows Server 2012 R2 Standard edition 1. 安装 Visual Studio 2015 with U ...
- Visual Studio 2015编译wxWidgets
宫指导说,换帅如换刀 程序员的编译器一换,基本套路必须都重练几次 使用wxWidgets并不难,但不能使用现有的库和工程配置文件,细节就必须理清楚 获取wxWidgets 官方的下载页面,下7z或zi ...
- Visual Studio 2015编译Lua 5.3.4遇到的坑
被坑的不浅,遇到错误:" LNK1561:必须定义入口点",解决方案删除再建,步骤一遍一遍操作,还是报错.如下图所示: 首先,它必须要改成DLL或者LIB(动态/静态库),如果是应 ...
- visual c语言编译运行结果,Visual Studio 2015编译运行C语言文件问题小结
各位老友很久不见,距离上一篇博客已通过去四个多月了,这应该是近几年间隔最长的一次.很无奈,毕业季遇上了特殊时期,不少计划都被打乱了,半年前构思的各类场景在现实面前一一被抹杀,在家搞毕业设计是真的痛苦, ...
- Visual Studio 2015编译运行C语言文件问题小结
各位老友好久不见,距离上一篇博客已经过去四个多月了,这应该是近几年间隔最长的一次.很无奈,毕业季赶上了特殊时期,很多计划都被打乱了,半年前构思的各种场景在现实面前一一被抹杀,在家搞毕业设计是真的痛苦, ...
- 在Visual Studio 2015下使用pthread win32编译报错
pthread for win32的发行版本中只提供了动态库,今天在Visual Studio 2015下编译pthread for win32(2.9.1),想编译一个静态库,就报一个struct ...
- vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序
##安装 Visual Studio 2015 安装时注意将跨平台移动开发->Visual C++移动开发->Viaual C++ Android 开发的选项勾上 ##安装PUTTY Vi ...
- 一步一步在 Windows 10 用 visual studio 2019 编译 zmqpp 4.2.0 版
伸手党可以到 zmqpp库windows编译结果-C++文档类资源-CSDN下载 去下载 zmqpp 是 libzmq 的高级 C++ 封装,不但提供了针对 libzmq C 接口的 C++ 封装,还 ...
最新文章
- LLVM与Clang编译图例
- Linux基础第四课——文件操作
- 解决Ubuntu16.04 fatal error: json/json.h: No such file or directory
- query什么意思php,关于 QueryPHP
- lnmp解析php,搭建LNMP,可以解析PHP文件-Go语言中文社区
- apt ubuntu 指定ipv4_macOS 下使用 Docker 搭建 ubuntu 环境
- javascript功能_最新版本JavaScript仅具有2个新功能。 这是他们的工作方式。
- spark 上游rdd的缓存
- 比尔·盖茨,让骆驼穿过针眼的人
- vue 截取视频第一帧
- 标签上的title属性和alt属性有什么区别
- error Type referred to is not an annotation type:
- 个人和企业拥有专利的25个好处!
- php predis连接超时,如何解决redis连接超时问题
- 致敬!烈日下的测绘者,请为他们点赞!
- SVD 与 LSI教程(5):LSI关键字研究与协同理论
- DLL 注入的三种方法详解
- 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)
- Day04 - Array Cardio 指南一
- 国庆集训 || Wannafly Day4
热门文章
- emacs python开发环境_配置Emacs下的Python开发环境
- 判定Java源文件名称_JAVA
- 机器学习实战:模型评估和优化
- Python-OpenCV 处理图像(五):图像中边界和轮廓检测
- Java 重入锁 ReentrantLock 原理分析
- TCP/UDP,SOCKET,HTTP,FTP协议简析
- 最简实例说明wait、notify、notifyAll的使用方法
- 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
- 球面三角基本名称及性质、基本定理和公式、解法
- Python计算机视觉:第八章 图像类容分类