boost 库中 filesystem::path 功能

2023-10-20 17:36:09 浏览数 (2)

boost filesystem::path 是对文件目录路径做处理的一个小的类,他把我们平时处理文件路径的繁琐功能简化到不能再简化,比如我们想获取一个路径中的文件名,只需要调用 object.filename().string() 就可以了,如果是C语言或者C 中提供的系统库中,我们是找不到这么方便的方法的。更多的一些功能见下面代码。你也可以查看 boost 帮助文档,查找更多的功能。

代码语言:javascript复制
#include 
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;
int main(int argc, char* argv[])
{
boost::filesystem::path path_01(
“C:\boost_1_58_0\stage\lib\libboost_atomic-vc120-mt-1_57.lib”);
// 根目录 “”
cout << path_01.root_directory().string() << endl;
// 根目录名字 “C:”
cout << path_01.root_name().string() << endl;
// 根目录路径 “C:”
cout << path_01.root_path().string() << endl;
// 文件的完整名称
cout << path_01.filename().string() << endl;
// 文件后缀名
cout << path_01.extension().string() << endl;
return 0;
}

要注意的是,以上代码如果在 vs 下编译的话,会提示:

LINK : fatal error LNK1104: 无法打开文件“libboost_filesystem-vc120-mt-gd-1_58.lib”

这说明他找不到外部依赖库的路径,你只需要在 vs 的项目属性中,添加整个 boost 外部依赖库的路径或者单独添加你需要的这个 libboost_filesystem-vc120-mt-gd-1_58.lib 就可以了。 添加外部依赖库的文件夹:

这样添加完成后,我们的程序就可以成功编译了。

0 人点赞