你好,我目前有一个程序,它获取文件位置的完整路径,并被放入一个变量类型:boost :: filesystem2 :: path
我已经查找了如何做到这一点,并发现使用:
string result1 = boost::filesystem::basename (myPath)
将路径转换为字符串但它只转换文件名(例如,如果路径为"C:\name\bobsAwesomeWordDoc.docx",则只返回"bobsAwesomeWordDoc").
我已经找到了如何将整个路径转换为字符串的以下内容,但我不知道如何在我的程序中实现它.我尝试了多种方法但是我遇到了转换错误.
const std :: string&string():此例程返回初始化路径的字符串的副本,并根据路径语法规则进行格式化.
(在这里找到)
我试过了:
string result1 = string& (myPath);
以及其他一些变化.
res*_*ned 11
我相信你需要做多一点不仅仅是转换路径为一个字符串-你应该首先获得该路径的规范版本-无符号链接元素的绝对路径-并转换是为一个字符串:
boost::filesystem::canonical(myPath).string();
PS - 我已经使用Boost进行了多年的编程,我无法在文档中轻松找到这些信息.
更新(2017年10月)
文档:boost :: filesystem :: canonical.
但请注意,从C++ 17开始,有std :: filesystem,具有规范性和更多功能.