boost 库中 filesystem::path 功能

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

#include <iostream>
#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 就可以了。

添加外部依赖库的文件夹:

2015-06-14_234101

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

评论