簡體   English   中英

如何為字符串分配boost :: filesystem :: directory_entry :: path()值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM