web-dev-qa-db-ja.com

標準を使用してディレクトリ内のファイルの数を数える方法は?

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;
}

しかし、それはやり過ぎのようです。より簡単で高速な方法はありますか?

13
Boiethios

Visual Studio 17を使用している場合は、次の名前空間を使用する必要があります。

namespace fs = std::experimental::filesystem;

次に、おそらくこのような関数を使用できます。

int Count() {
int count=0;
for (auto& p : fs::directory_iterator(dir)) {
    count++;

}
    return count;
}
0
DerpyCoder