我当前的工作目录位于 /home/myuser/program
,我创建了一个 boost::filesystem::path
对象指向它。我附加了 /../somedir
,所以它变成了 /home/myuser/program/../somedir
。但我需要得到它的解析绝对路径,即 /home/myuser/somedir
。
我尝试了很久,在their reference中没有找到任何方法去做这个。有一个名为 make_absolute
的方法,它似乎应该做我所期望的,但我必须给它一个“根”路径参数。应该是哪个?我真的需要这样做才能获得真正的绝对路径吗?有没有其他办法?
最佳答案
你说你想要一个绝对路径,但你的例子表明你已经有了一个绝对路径。删除路径的 ..
组件的过程称为规范化。为此,您应该调用 canonical
.它恰好也执行absolute
的任务,所以你不需要先调用absolute
或make_absolute
。 make_absolute
函数需要一个基本路径;如果你没有更好的,你可以传递它 current_path()
。
关于c++ - 使用 boost::filesystem::path 获取绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643880/