前言

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库进行文件与目录的操作相关推荐

  1. 用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面

    用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面!!! 开发工具:Visual Studio 2015 企业版 目 标 机:Windows 1 ...

  2. 使用 Visual Studio 2015 编译 BitShares-Core

    0. 环境准备 * 64 位 Windows 系统,比如 Windows Server 2012 R2 Standard edition 1. 安装 Visual Studio 2015 with U ...

  3. Visual Studio 2015编译wxWidgets

    宫指导说,换帅如换刀 程序员的编译器一换,基本套路必须都重练几次 使用wxWidgets并不难,但不能使用现有的库和工程配置文件,细节就必须理清楚 获取wxWidgets 官方的下载页面,下7z或zi ...

  4. Visual Studio 2015编译Lua 5.3.4遇到的坑

    被坑的不浅,遇到错误:" LNK1561:必须定义入口点",解决方案删除再建,步骤一遍一遍操作,还是报错.如下图所示: 首先,它必须要改成DLL或者LIB(动态/静态库),如果是应 ...

  5. visual c语言编译运行结果,Visual Studio 2015编译运行C语言文件问题小结

    各位老友很久不见,距离上一篇博客已通过去四个多月了,这应该是近几年间隔最长的一次.很无奈,毕业季遇上了特殊时期,不少计划都被打乱了,半年前构思的各类场景在现实面前一一被抹杀,在家搞毕业设计是真的痛苦, ...

  6. Visual Studio 2015编译运行C语言文件问题小结

    各位老友好久不见,距离上一篇博客已经过去四个多月了,这应该是近几年间隔最长的一次.很无奈,毕业季赶上了特殊时期,很多计划都被打乱了,半年前构思的各种场景在现实面前一一被抹杀,在家搞毕业设计是真的痛苦, ...

  7. 在Visual Studio 2015下使用pthread win32编译报错

    pthread for win32的发行版本中只提供了动态库,今天在Visual Studio 2015下编译pthread for win32(2.9.1),想编译一个静态库,就报一个struct ...

  8. vs远程编译linux程序,使用Visual Studio 2015远程调试Linux程序

    ##安装 Visual Studio 2015 安装时注意将跨平台移动开发->Visual C++移动开发->Viaual C++ Android 开发的选项勾上 ##安装PUTTY Vi ...

  9. 一步一步在 Windows 10 用 visual studio 2019 编译 zmqpp 4.2.0 版

    伸手党可以到 zmqpp库windows编译结果-C++文档类资源-CSDN下载 去下载 zmqpp 是 libzmq 的高级 C++ 封装,不但提供了针对 libzmq C 接口的 C++ 封装,还 ...

最新文章

  1. LLVM与Clang编译图例
  2. Linux基础第四课——文件操作
  3. 解决Ubuntu16.04 fatal error: json/json.h: No such file or directory
  4. query什么意思php,关于 QueryPHP
  5. lnmp解析php,搭建LNMP,可以解析PHP文件-Go语言中文社区
  6. apt ubuntu 指定ipv4_macOS 下使用 Docker 搭建 ubuntu 环境
  7. javascript功能_最新版本JavaScript仅具有2个新功能。 这是他们的工作方式。
  8. spark 上游rdd的缓存
  9. 比尔·盖茨,让骆驼穿过针眼的人
  10. vue 截取视频第一帧
  11. 标签上的title属性和alt属性有什么区别
  12. error Type referred to is not an annotation type:
  13. 个人和企业拥有专利的25个好处!
  14. php predis连接超时,如何解决redis连接超时问题
  15. 致敬!烈日下的测绘者,请为他们点赞!
  16. SVD 与 LSI教程(5):LSI关键字研究与协同理论
  17. DLL 注入的三种方法详解
  18. 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)
  19. Day04 - Array Cardio 指南一
  20. 国庆集训 || Wannafly Day4

热门文章

  1. emacs python开发环境_配置Emacs下的Python开发环境
  2. 判定Java源文件名称_JAVA
  3. 机器学习实战:模型评估和优化
  4. Python-OpenCV 处理图像(五):图像中边界和轮廓检测
  5. Java 重入锁 ReentrantLock 原理分析
  6. TCP/UDP,SOCKET,HTTP,FTP协议简析
  7. 最简实例说明wait、notify、notifyAll的使用方法
  8. 分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵
  9. 球面三角基本名称及性质、基本定理和公式、解法
  10. Python计算机视觉:第八章 图像类容分类