如何使用Boost和C ++递归地和单独地列出文件和文件夹

时间:2015-01-06 11:47:36

标签: c++ boost

在boost文档中,我找到了列出目录文件和文件夹的代码(但不是递归地:(),但我不知道如何生成所有文件的列表,即使是那些文件中的文件也是如此。子目录(递归地)或所有文件夹的列表(递归地)。

1 个答案:

答案 0 :(得分:1)

为了帮助您入门:

#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>

namespace fs = boost::filesystem; 

#include <iostream>

int main() {

    for (auto& entry : boost::make_iterator_range(fs::recursive_directory_iterator("."), {}))
    {
        if (fs::is_regular_file(entry))
            std::cout << entry.path() << "\n";
    }

}

打印例如。

"./odata/marshal/json_light_test.cpp"
"./odata/marshal/core_test.cpp"
"./odata/marshal/json_verbose_test.cpp"
"./odata/edm/example_test.cpp"
"./odata/edm/builtin_test.cpp"
"./misc/naive_ptr_tests.cpp"
"./json/generic_visitor_tests.cpp"
"./json/json_tests.cpp"
"./azure/storage/test_service_definitions.hpp"
"./azure/storage/blob_tests.cpp"
"./azure/storage/table_tests.cpp"