- filesystem[meta header]
- std::filesystem[meta namespace]
- class[meta id-type]
- cpp17[meta cpp]
namespace std::filesystem {
class directory_iterator;
}
directory_iterator
は、ディレクトリ内を走査する入力イテレータクラスである。
このイテレータは指定されたディレクトリ内のファイルを走査するが、ディレクトリ内のディレクトリをさらに走査はしない。再帰的にディレクトリを走査する場合は、std::filesystem::recursive_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::directory_iterator("dir_a")) {
std::cout << x.path() << std::endl;
}
}
- fs::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"