因为是使用boost库读取,所以注意一下头文件。
#include <boost/filesystem.hpp>
using namespace std;
namespace fs=boost::filesystem;
int get_filenames(const string &dir,vector<string>&filenames )
{
fs::path path(dir);
if(!fs::exists(path))
{
return -1;
}
fs::directory_iterator end_iter;
for(fs::directory_iterator iter(path);iter!=end_iter;iter++)
{
if(fs::is_regular_file(iter->status()))
{
filenames.push_back(iter->path().string())
}
if(fs::is_directory(iter->status()))
{
get_filenames(iter->path().string(),filenames)
}
}
return filenames.size();
}