【发布时间】:2016-08-24 19:51:11
【问题描述】:
正如documentation 中所述,预期的输出如下:
boost::filesystem::path filePath1 = "/home/user/";
cout << filePath1.parent_path() << endl; // outputs "/home/user"
boost::filesystem::path filePath2 = "/home/user";
cout << filePath2.parent_path() << endl; // outputs "/home"
问题是,你如何处理这个问题?也就是说,如果我接受一个路径作为参数,我不希望用户关心它是否应该有一个斜杠。似乎最简单的做法是附加一个斜杠,然后调用parent_path() TWICE 以获取我想要的“/home”的父路径:
boost::filesystem::path filePath1 = "/home/user/";
filePath1 /= "/";
cout << filePath1.parent_path().parent_path() << endl; // outputs "/home"
boost::filesystem::path filePath2 = "/home/user";
filePath2 /= "/";
cout << filePath2.parent_path().parent_path() << endl; // outputs "/home"
但这似乎很荒谬。有没有更好的方法在框架内处理这个问题?
【问题讨论】:
标签: c++ boost boost-filesystem