#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
int getIndex(const std::vector<std::string>& list,const std::string& str){
int result = -1;
auto pos = std::find(list.begin(),list.end(),str);
if (pos != list.end())
result = std::distance(list.begin(), pos);
return result;
}
std::vector<std::string> get_file_list(const std::string& path, const std::vector<std::string>& filter)
{
std::vector<std::string> result;
if (!path.empty())
{
fs::path path_(path);
fs::recursive_directory_iterator end;
for (fs::recursive_directory_iterator i(path_); i != end; ++i)
{
if (fs::is_regular_file(i->path())){
auto ext = i->path().extension().string();
auto index = getIndex(filter, ext);
if (index != -1)
result.push_back(i->path().string());
}
}
}
return result;
}