2015年4月28日 星期二

C++: 使用Boost取得某個資料夾下的所有檔案

[ 環境 ]
  • Windows 7, 64bit
  • Microsoft Visual Studio 2010  (32 bit 專案)
  • Library:Boost 1.50.0
    (如果需要Boost安裝教學的人可以參考這篇: Boost C++ Library 的安裝)
 -------------------------------------------------------------------------------------------------------------------------

這篇要教的是如何得到或列出某個資料夾底下的檔案 (包括資料夾和其他檔案)。



#include <iostream>
#include <vector>
#include <boost\filesystem.hpp>

namespace bfs = boost::filesystem;
using namespace std;

// assign the path of the directory
// 指定要取得資料夾的路徑
bfs::path myDir = "Test"

// the files under the directory will store in the vector
// 宣告一個 vector, 用來儲存取得的檔案
vector<bfs::path> myFiles;

// copy all file names which are under the directory to the vector
// 將資料夾下的檔案全部copy到剛剛宣告的vector
if ( bfs::exists (myDir) )
copy( bfs::directory_iterator(myDir), bfs::directory_iterator(), back_inserter(myFiles) );

// list all the file names
// 列出資料夾下的所有檔案
for (int i = 0; i < myFiles.size(); i++)
cout<<myFiles[i]<<endl;

如上程式碼,就會將"Test"資料夾底下所有的檔案存放到myFiles中。輸出結果如下:

沒有留言:

張貼留言