2010-03-05 38 views

回答

8

链接与-lboost_filesystem

#include <iostream> 
#include <string> 
#include <vector> 

#include <boost/algorithm/string/case_conv.hpp> 
#include <boost/filesystem.hpp> 

int main(int argc, char ** argv) 
{ 
    std::string ext = ".jpg"; 

    std::vector<std::string> files; 

    for (boost::filesystem::directory_iterator it(boost::filesystem::initial_path()); 
     it != boost::filesystem::directory_iterator(); ++it) 
    { 
    if (boost::filesystem::is_regular_file(it->status()) && 
     boost::algorithm::to_lower_copy(it->path().extension()) == ext) 
    { 
     files.push_back(it->path().filename()); 
    } 
    } 

    std::cout << "Number of files: " << files.size() << std::endl; 
    std::copy(files.begin(), files.end(), std::ostream_iterator<std::string>(std::cout, "\n")); 

    return 0; 
} 
+0

真棒下面的程序:)我解决我的dirent.h库的问题,但这是一个很好的参考,以Boost.Filesystem的。 tyvm :) – 2010-03-08 21:27:16