c++ filesystem使用 - 如何将boost路径类型转换为字符串?




2 Answers

你只需要调用myPath.string()

path basename

你好,我目前有一个程序,获取文件位置的完整路径,并将其放入类型为boost :: filesystem2 :: path

我已经查阅了如何做到这一点,并发现使用:

string result1 = boost::filesystem::basename (myPath)

将路径转换为字符串,但它只转换文件名(例如,如果路径是“C:\ name \ bobsAwesomeWordDoc.docx”,它只是返回“bobsAwesomeWordDoc”)。

我已经找到了如何将整个路径转换为字符串,但我不知道如何在我的程序中实现它。 我尝试了多种方式,但我收到了转换错误。

const std :: string&string():此例程返回路径初始化的字符串的副本,并根据路径语法规则进行格式化。

(在here找到)

我努力了:

string result1 = string& (myPath);

和其他一些变化。




这工作在wxWidgets中:(我知道我应该只使用wx实用程序,但它是一个测试)

void WxWidgetsBoostTestFrame::OnTestBtnClick(wxCommandEvent& event)
{
    boost::filesystem::path currentPath;
    currentPath = boost::filesystem::current_path();
    std::string curDirString;
    curDirString = boost::filesystem::canonical(currentPath).string();
    wxString mystring(curDirString.c_str(), wxConvUTF8);
    wxMessageBox(mystring); // output:  C:/Users\client\Desktop...      
}



Related

c++ boost path

Tags

c++   boost   path