我想写一个迭代递归通过一个目录,并将每个文件夹,子文件夹和文件名与用户定义的正则表达式对象进行比较的算法。如何将boost :: filesystem :: directory_entry :: path()值分配给字符串?
我发现这段代码的重复部分:
path p(FilePath);
for (directory_entry& x : recursive_directory_iterator(p))
std::cout << x.path() << '\n';
凡文件路径是在运行时由用户定义的目录路径。
它很适合在控制台上打印出路径,但我找不出一种方法来使用path()来做我想做的事情,也就是将它的值赋给一个字符串,然后比较那个字符串到我的正则表达式对象。
我一直在寻找boost :: filesystem :: directory_entry中的其他成员函数,但到目前为止我还没有真正有运气。
任何人都可以指向正确的方向吗?
谢谢。
编辑:
我很笨。
请从http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/reference查看'path :: string()'或'path :: generic_string()' .html#path-native-format-observers。所以在你的例子中,'x.path()。string()'会给你本地格式字符串 –
谢谢,我们在正确的路径上,但是我不能让path()。string()来循环。我编辑了我的问题以显示问题所在。 –
看到我的回答与你的编辑... –