![](/img/trans.png)
[英]How to convert const std::filesystem::directory_entry to tchar?
[英]How can I assign boost::filesystem::directory_entry::path() value to a string?
我正在嘗試編寫一種算法,該算法以遞歸方式遍歷目錄,並將每個文件夾,子文件夾和文件名與用戶定義的regex對象進行比較。
我在迭代部分找到了這段代碼:
path p(FilePath);
for (directory_entry& x : recursive_directory_iterator(p))
std::cout << x.path() << '\n';
其中Filepath是用戶在運行時定義的目錄路徑。
在控制台上打印出路徑非常有用,但是我無法找到一種使用path()來完成所需操作的方法,即將其值分配給一個字符串,然后將該字符串與我的regex對象進行比較。
我一直在看boost :: filesystem :: directory_entry中的其他成員函數,但到目前為止我還沒有真正的運氣。
有人能指出我正確的方向嗎?
謝謝。
編輯:
我很笨
在控制台上打印出路徑非常有用,但是我無法找到一種使用path()來完成所需操作的方法,即將其值分配給一個字符串,然后將該字符串與我的regex對象進行比較。
boost :: path具有一個字符串成員,該成員要么轉換為字符串類型,要么返回對基礎存儲機制的const引用(通常為std :: string)( 請參見boost path文檔 )。 因此,只需調用:
x.path().string()
另外,您可能想在for循環后面添加一些括號:
path p(FilePath);
std::string temppath;
for (directory_entry& x : recursive_directory_iterator(p))
{
temppath = x.path().string();
std::cout << temppath << std::endl;
}
結構化代碼std :: cout的方式不會作為循環的一部分被調用,而只是在循環完全完成之后才出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.