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;
}
しかし、それはやり過ぎのようです。より簡単で高速な方法はありますか?
Visual Studio 17を使用している場合は、次の名前空間を使用する必要があります。
namespace fs = std::experimental::filesystem;
次に、おそらくこのような関数を使用できます。
int Count() {
int count=0;
for (auto& p : fs::directory_iterator(dir)) {
count++;
}
return count;
}