gpt4 book ai didi

c++ - 如何使用标准计算目录中的文件数?

转载 作者:IT老高 更新时间:2023-10-28 23:10:47 26 4
gpt4 key购买 nike

预计 2017 年的新标准增加了 std::filesystem。使用它,如何统计一个目录中的文件(包括子目录)个数?

我知道我们可以做到:

std::size_t number_of_files_in_directory(std::filesystem::path path)
{
std::size_t number_of_files = 0u;
for (auto const & file : std::filesystem::directory_iterator(path))
{
++number_of_files;
}
return number_of_files;
}

但这似乎有点矫枉过正。有没有更简单快捷的方法?

最佳答案

我认为不存在一种轻松获取目录中文件数量的方法,但是您可以通过使用 std::distance 而不是手写循环来简化代码:

std::size_t number_of_files_in_directory(std::filesystem::path path)
{
using std::filesystem::directory_iterator;
return std::distance(directory_iterator(path), directory_iterator{});
}

您可以使用 count_if 来获取仅实际文件的数量或应用任何其他过滤器:

std::size_t number_of_files_in_directory(std::filesystem::path path)
{
using std::filesystem::directory_iterator;
using fp = bool (*)( const std::filesystem::path&);
return std::count_if(directory_iterator(path), directory_iterator{}, (fp)std::filesystem::is_regular_file);
}

关于c++ - 如何使用标准计算目录中的文件数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41304891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com