我手头有一个boost::filesystem::path
,我想在上面附加一个字符串(或路径)。
boost::filesystem::path p("c:\\dir");
p.append(".foo"); // should result in p pointing to c:\dir.foo
唯一的
boost::filesystem::path
重载append
要两个InputIterator
。到目前为止,我的解决方案是执行以下操作:
boost::filesystem::path p2(std::string(p.string()).append(".foo"));
我想念什么吗?
最佳答案
#include <iostream>
#include <string>
#include <boost/filesystem.hpp>
int main() {
boost::filesystem::path p (__FILE__);
std::string new_filename = p.leaf() + ".foo";
p.remove_leaf() /= new_filename;
std::cout << p << '\n';
return 0;
}
使用1.37测试,但是leaf和remove_leaf也记录在1.35中。您需要先测试p的最后一个组成部分是否是文件名(如果不是)。
关于c++ - 附加到boost::filesystem::path,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2396548/