std::experimental::filesystem:: directory_iterator
|
ヘッダーで定義
<experimental/filesystem>
|
||
|
class
directory_iterator
;
|
(filesystem TS) | |
directory_iterator
は、ディレクトリの
LegacyInputIterator
であり、ディレクトリ内の
directory_entry
要素を反復処理します(ただし、サブディレクトリは訪問しません)。反復順序は未規定ですが、各ディレクトリエントリは一度だけ訪問されます。特別なパス名である
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) |
|
|
(destructor)
|
デフォルトデストラクタ
(public member function) |
|
内容を代入する
(public member function) |
|
|
指し示すエントリにアクセスする
(public member function) |
|
|
次のエントリに進む
(public member function) |
非メンバー関数
|
範囲ベースforループのサポート
(関数) |
さらに、 operator == および operator ! = が、 LegacyInputIterator の要件に従って、メンバーまたは非メンバーとして提供されます。
例
#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"
関連項目
|
ディレクトリとそのサブディレクトリの内容へのイテレータ
(クラス) |
|
|
ディレクトリ内容の反復処理オプション
(列挙型) |
|
|
ディレクトリエントリ
(クラス) |