1、代码
#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
/*
* @brief 得到一个文件夹后缀名为extension的所有文件
* param[in] folderName 文件夹名 extension 需要获得的后缀名 vec_filenames 文件名存入容器
*/
bool bathReadFileNamesInFolders(const string folderName, const string extension, vector<string> &vec_filenames)
{
if (!boost::filesystem::exists(folderName))
{
return 0;
}
else
{
boost::filesystem::directory_iterator end_iter;
for (boost::filesystem::directory_iterator iter(folderName); iter != end_iter; ++iter)
{
if (boost::filesystem::is_regular_file(iter->status()))
{
string file_name = iter->path().string();
boost::filesystem::path dir(file_name);
if (!dir.extension().string().empty())
{
if (!file_name.substr(file_name.rfind('.')).compare(extension))
{
vec_filenames.push_back(file_name);
}
}
}
}
}
return 1;
}
int main()
{
const string path_name = "D:/sunquan/las_data";
string extension = ".las";
vector<string> vec_file_names;
bathReadFileNamesInFolders(path_name, extension, vec_file_names);
for (int i = 0; i < vec_file_names.size(); i++)
{
cout << vec_file_names[i] << endl;
}
system("pause");
}
2、结果