bool getFilesFromFolder(const std::string &folder,
const std::string &suffix,
std::vector<std::string> &files)
{
boost::filesystem::path path(folder);
if (!boost::filesystem::exists(path) || !boost::filesystem::is_directory(path))
{
std::cout << "the folder is not exists or is not directory. the folder: " << folder << std::endl;
return false;
}
boost::filesystem::recursive_directory_iterator end_iter;
for(boost::filesystem::recursive_directory_iterator iter(path); iter != end_iter; ++iter)
{
//check file
if(boost::filesystem::is_regular_file(*iter) && iter->path().string().size() > suffix.size())
{
std::string curSuffix = iter->path().string().substr(iter->path().string().size() - suffix.size());
if (suffix == curSuffix)
{
files.push_back(iter->path().string());
}
}
else if(boost::filesystem::is_directory(iter->status()))
{
std::string dirNext(iter->path().string());
getFilesFromFolder(dirNext, suffix, files);
}
}
return true;
}
调用:
std::string file_path="home/d/I_LOVE_JY";
std::vector file_name_vector;
bool file_bool = getFilesFromFolder(file_path, "txt", file_name_vector);
ubuntu (c++)获取某个文件夹下所有特定后缀的文件名
最新推荐文章于 2023-03-13 16:16:07 发布