2015-06-25 62 views
2

當我使用boost::filesystem獲得目錄中的文件名列表,我收到文件名以及目錄名:如何獲取文件名VS C++中的目錄名(使用升壓文件系統庫)

#include <string> 
#include <iostream> 
#include <boost/filesystem.hpp> 
using namespace std; 
using namespace boost::filesystem; 

int main() 
{ 
    path p("D:/AnyFolder"); 
    for (auto i = directory_iterator(p); i != directory_iterator(); i++) 
    { 
     cout << i->path().filename().string() << endl; 
    } 
} 

輸出類似於:

file1.txt 
file2.dat 
Folder1 //which is a folder 

是否有快速的方法來區分文件和文件夾? 我的操作系統是Windows 8.1,如果它很重要。

+0

的可能的複製[我如何獲得文件的C++中的目錄列表? ](http://stackoverflow.com/questions/306533/how-do-i-get-a-list-of-files-in-a-directory-in-c) – malat

回答

5

最終代碼:

#include <string> 
#include <iostream> 
#include <boost/filesystem.hpp> 
using namespace std; 
using namespace boost::filesystem; 

int main() 
{ 
    path p("D:/AnyFolder"); 
    for (auto i = directory_iterator(p); i != directory_iterator(); i++) 
    { 
     if (!is_directory(i->path())) //we eliminate directories in a list 
     { 
      cout << i->path().filename().string() << endl; 
     } 
     else 
      continue; 
    } 
} 

輸出是這樣的:

file1.txt 
file2.dat 
相關問題