C++17递归获取一个目录下指定扩展名的所有文件

C++17加入了std::experimental::filesystem,这使得C++进行文件操作大为方便(当然,之前boost也是有类似的filesystem的)。

使用std::experimental::filesystem::recursive_directory_iterator可以方便的递归获取一个目录下的文件。

#include <fstream>
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
 
int main()
{
    std::string path("/your/dir/");
    std::string ext(".sample");
    for(auto& p: fs::recursive_directory_iterator(path))
    {
        if(p.path().extension() == ext())
            std::cout << p << '\n';
    }
    return 0;
}

Reference

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注

12 + 7 =