recursive_directory_iterator
filesystem[meta header]
std::filesystem[meta namespace]
class[meta id-type]
cpp17[meta cpp]
namespace std ::filesystem {
class recursive_directory_iterator ;
}
recursive_directory_iterator
は、ディレクトリ内を再帰的に走査する入力イテレータクラスである。
std::filesystem::directory_iterator
クラスは指定されたディレクトリ直下のファイルを走査するが、このイテレータはディレクトリ内のディレクトリも再帰的に走査する。
ファイルの走査順序は未規定であり、ファイル名の辞書順に走査される保証はない。
名前
説明
対応バージョン
begin
先頭要素へのイテレータを取得する
C++17
end
最後尾要素の次を指すイテレータを取得する
C++17
#include < iostream>
#include < filesystem>
#include < fstream>
namespace fs = std::filesystem;
int main ()
{
fs::create_directory (" dir_a" );
std::ofstream{" dir_a/a.txt" };
fs::create_directory (" dir_a/dir_b" );
std::ofstream{" dir_a/dir_b/b.txt" };
// dir_aディレクトリに含まれる全ファイル・ディレクトリを再帰的に出力
for (const fs::directory_entry& x : fs::recursive_directory_iterator (" dir_a" )) {
std::cout << x.path () << std::endl;
}
}
fs::recursive_directory_iterator[color ff0000]
fs::directory_entry[link directory_entry.md]
x.path()[link directory_entry/path.md]
fs::create_directory[link create_directory.md]
"dir_a/a.txt"
"dir_a/dir_b"
"dir_a/dir_b/b.txt"