c++ - 使用 boost::filesystem::path 获取绝对路径

标签 c++ boost path filesystems

我当前的工作目录位于 /home/myuser/program,我创建了一个 boost::filesystem::path 对象指向它。我附加了 /../somedir,所以它变成了 /home/myuser/program/../somedir。但我需要得到它的解析绝对路径,即 /home/myuser/somedir

我尝试了很久,在their reference中没有找到任何方法去做这个。有一个名为 make_absolute 的方法,它似乎应该做我所期望的,但我必须给它一个“根”路径参数。应该是哪个?我真的需要这样做才能获得真正的绝对路径吗?有没有其他办法?

最佳答案

你说你想要一个绝对路径,但你的例子表明你已经有了一个绝对路径。删除路径的 .. 组件的过程称为规范化。为此,您应该调用 canonical .它恰好也执行absolute的任务,所以你不需要先调用absolutemake_absolutemake_absolute 函数需要一个基本路径;如果你没有更好的,你可以传递它 current_path()

关于c++ - 使用 boost::filesystem::path 获取绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643880/

相关文章:

c# - 使用 .Net 验证路径相等性

c++ - 将 XOR 加密代码移植到 PHP

c++ - 将源文件与静态库 C++ 链接时出错

c++ - 在派生构造函数中调用基方法的坏习惯?

c++ - Boost 作用域锁定断言失败

c++ - 在 ubuntu 10.04 下安装最新的 1.44 boost 库

android在不拍照的情况下获取照片路径

c++ - std::dynamic_pointer_cast 未正确向下转换

c++ - Boost 运算符如何工作?

c# - 如何扩展 WPF 路径控件