std::experimental::filesystem::directory_iterator
From cppreference.com
< cpp | experimental | fs
| ヘッダー <experimental/filesystem> で定義されています |
||
| class directory_iterator; |
(filesystem TS) | |
directory_iterator は、ディレクトリのエントリ(サブディレクトリは訪問しません)を反復処理する LegacyInputIterator です。反復順序は未指定ですが、各ディレクトリエントリは1回だけ訪問されます。特別なパス名 dot と dot-dot はスキップされます。
directory_iterator が最後のディレクトリエントリを過ぎて進むと、デフォルトで構築されたイテレータ(エンドイテレータとも呼ばれます)と等しくなります。2つのエンドイテレータは常に等しく、エンドイテレータの逆参照またはインクリメントは未定義の動作です。
ディレクトリイテレータが作成された後、ファイルまたはディレクトリが削除されたり、ディレクトリツリーに追加されたりした場合、その変更がイテレータを通じて観察されるかどうかは未指定です。
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
value_type
|
filesystem::directory_entry
|
difference_type
|
std::ptrdiff_t
|
pointer
|
const filesystem::directory_entry*
|
reference
|
const filesystem::directory_entry&
|
iterator_category
|
std::input_iterator_tag
|
[編集] メンバ関数
| ディレクトリ イテレータを構築します (public member function) | |
| (デストラクタ) |
デフォルト デストラクタ (public member function) |
| 内容を代入する (public member function) | |
| 指しているエントリにアクセスします (public member function) | |
| 次のエントリに進みます (public member function) |
[編集] 非メンバ関数
| 範囲ベース for ループのサポート (function) |
LegacyInputIterator で要求されるように、operator== および operator!= も、メンバまたは非メンバとして提供されます。
[編集] 例
このコードを実行
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directories("sandbox/a/b"); std::ofstream{"sandbox/file1.txt"}; std::ofstream{"sandbox/file2.txt"}; for (const fs::directory_entry& entry : fs::directory_iterator{"sandbox"}) std::cout << entry << '\n'; fs::remove_all("sandbox"); }
実行結果の例
"sandbox/a" "sandbox/file1.txt" "sandbox/file2.txt"
[編集] 関連項目
| ディレクトリとそのサブディレクトリの内容を指すイテレータ (クラス) | |
| ディレクトリの内容をイテレートするためのオプション (列挙型) | |
| ディレクトリエントリ (クラス) |