我有一个文件路径
std::string
例如:
C:\\folder1\\folder2\\file.dll
我想获取文件夹路径
例如: C:\ folder1 \ folder2 \。
我尝试过
str=path.substr(0,path.find_last_of("\\/"))
但是,这也省略了最后一个\\
。
答案 0 :(得分:1)
如果您有权使用增强功能,请使用:
boost::filesystem::path(str).root_path();
以及C ++ 17:
std::filesystem::path(str).root_path();
答案 1 :(得分:1)
使用std::filesystem::parent_path()
:
std::filesystem::path p{ "c:\\temp\\test.txt" };
std::cout << "Parent: " << p.parent_path() << std::endl; // will output c:\temp
如果您使用的是VS 2017,则filesystem
命名空间下的experimental
可用:
std::experimental::filesystem::path p{ "c:\\temp\\test.txt" };
_splitpath
和_makepath来构建父路径。