我想对这个主题有最好的预备。在实际做某事之前,我必须做一些路径魔术。
using namespace boost::filesystem;
path p = "apple"; // apple
p /= "pear"; // apple/pear
p /= ".."; // apple/pear/.. // apple
p /= "chicken"; // apple/pear/../chicken // apple/chichken
p /= ".."; // apple/pear/../chicken/.. // apple
p /= ".."; // apple/pear/../chicken/../.. // .
p /= ".."; // apple/pear/../chicken/../../.. // ..
p /= "cow"; // apple/pear/../chicken/../../../cow // ../cow
path s = "\\tmp\\file857463.tmp"; // s.is_relative() is true on windows
在第一个//
之后的每一行中,您都可以看到我打印时得到的内容。在第二个//
之后,您可以看到我想要看到的内容(如果不同)
如果我想看到这种行为,我可以/应该做什么中间步骤,考虑到我肯定不想触摸文件系统。在最终表单出现后,我想测试当前目录中的参考点(仍然没有访问FS)。
我想在Linux上检测向上跳转,例如\
(窗口)或\\
(窗口)或/
。从手册引用:在Windows上,路径(“/ foo”)。is_absolute()返回false 。这是恕我直言,非常科学,但没用。我的主要目标是防止向上引用而无需手动访问字符并且无需访问FS。 (如果我必须手动触摸任何字符,我宁愿一起编写自己的路径实用程序。)
我未能找到检测驱动器根引用的强大概念。我也试过提升文档和谷歌。
答案 0 :(得分:1)