2016-01-26 64 views
0

所以,我需要的子文件夾從一組文件夾(位於USB閃存驅動器)的n個名字,並將其存儲在一個字符串數組。在存儲名稱之前,需要自動將其大小設置爲子文件夾的數量。C++如何獲取存儲在字符串數組中的子文件夾名?

我該如何做到這一點?

+0

C++還沒有一個標準的方法與文件系統進行交互。你需要看看增強或其他第三方。此外,它必須是一個數組?你可以使用一個矢量。 –

+0

我對此感到抱歉。我已經澄清了我的問題 – Spencer4134

+0

哦,等等,我明白你的意思了。感謝你的回答! – Spencer4134

回答

2

這裏是一個升壓實現中,收集所有的指定目錄下的子目錄中,並將其存儲到一個載體。

#include <iostream> 
#include "boost/filesystem.hpp" 

using namespace std; 
using namespace boost::filesystem; 

int main(int argc, char *argv[]) 
{ 
    path p (".");//<- The path you want to get sub-folders of 

    directory_iterator end_itr; 

    // cycle through the directory 
    std::vector<std::string> dirs; 
    for (directory_iterator itr(p); itr != end_itr; ++itr) 
    { 
     if (is_directory(itr->path())) { 
      dirs.push_back(itr->path().string()); 
     } 
    } 

    //at this point, 
    //"dirs" contains strings to all of the sub folders. 
} 
+0

謝謝你的迴應!這些是我在嘗試使用它時遇到的錯誤:(分隔爲|) 無法打開包含文件:'boost/filesystem.hpp':沒有這樣的文件或目錄| \t 標識符「is_directory」未定義\t | namespace「std」has no member「vector」| 標識符「directory_iterator」是undefined | 標識符「路徑」未定義\t獲取文件路徑測試\t | 名稱後跟'::'必須是類或名稱空間名稱\t | 無法打開源文件「boost/filesystem.hpp」| – Spencer4134

+0

@ Spencer4134您需要下載/安裝boost庫,然後鏈接它。 –

+0

會做,謝謝! – Spencer4134

相關問題