我想寫一個迭代遞歸通過一個目錄,並將每個文件夾,子文件夾和文件名與用戶定義的正則表達式對象進行比較的算法。如何將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()來循環。我編輯了我的問題以顯示問題所在。 –
看到我的回答與你的編輯... –