所以,我需要的子文件夾從一組文件夾(位於USB閃存驅動器)的n個名字,並將其存儲在一個字符串數組。在存儲名稱之前,需要自動將其大小設置爲子文件夾的數量。C++如何獲取存儲在字符串數組中的子文件夾名?
我該如何做到這一點?
所以,我需要的子文件夾從一組文件夾(位於USB閃存驅動器)的n個名字,並將其存儲在一個字符串數組。在存儲名稱之前,需要自動將其大小設置爲子文件夾的數量。C++如何獲取存儲在字符串數組中的子文件夾名?
我該如何做到這一點?
這裏是一個升壓實現中,收集所有的指定目錄下的子目錄中,並將其存儲到一個載體。
#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.
}
謝謝你的迴應!這些是我在嘗試使用它時遇到的錯誤:(分隔爲|) 無法打開包含文件:'boost/filesystem.hpp':沒有這樣的文件或目錄| \t 標識符「is_directory」未定義\t | namespace「std」has no member「vector」| 標識符「directory_iterator」是undefined | 標識符「路徑」未定義\t獲取文件路徑測試\t | 名稱後跟'::'必須是類或名稱空間名稱\t | 無法打開源文件「boost/filesystem.hpp」| – Spencer4134
@ Spencer4134您需要下載/安裝boost庫,然後鏈接它。 –
會做,謝謝! – Spencer4134
正如其他意見所述,C++核心作爲一種語言沒有文件系統操作的機制。但是,正在進行的工作是基於Boost添加(參考)。使用READDIR API
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365200%28v=vs.85%29.aspx
在Linux上: -
同時,使用Win32 API,你可以像下面
http://www.gnu.org/software/libc/manual/html_node/File-System-Interface.html#File-System-Interface
C++還沒有一個標準的方法與文件系統進行交互。你需要看看增強或其他第三方。此外,它必須是一個數組?你可以使用一個矢量。 –
我對此感到抱歉。我已經澄清了我的問題 – Spencer4134
哦,等等,我明白你的意思了。感謝你的回答! – Spencer4134