directory_iterator
クラス
ディレクトリのファイル名を走査する入力反復子を表します。 反復子 X
の場合、式 *X
の結果は、ファイル名とそのステータスに関する既知の情報をラップする directory_entry
クラスのオブジェクトになります。
このクラスは、走査するディレクトリの名前を表す path
型のオブジェクト (ここでは、説明のために mydir
という名前にします) と、ディレクトリ シーケンス内の現在のファイル名を表す directory_entry
型のオブジェクト (myentry
という名前にします) を格納します。 既定で構築される型 directory_entry
のオブジェクトは、空の mydir
のパス名を持ち、end-of-sequence 反復子を表します。
たとえば、エントリと を含むディレクトリ abc
を def
エントリと ghi
エントリと一緒に指定すると、コードは次のようになります。
for (directory_iterator next(path("abc")), end; next != end; ++next) visit(next->path());
は、引数path("abc/def")
とpath("abc/ghi")
を使用してvisit
を呼び出します。
詳細およびコード例については、「ファイル システムのナビゲーション (C++)」をご覧ください。
構文
class directory_iterator;
コンストラクター
コンストラクター | 説明 |
---|---|
directory_iterator |
ディレクトリのファイル名を走査する入力反復子を構築します。 |
メンバー関数
メンバー関数 | 説明 |
---|---|
increment |
ディレクトリ内の次のファイル名に進もうとします。 |
演算子
演算子 | 説明 |
---|---|
operator!= |
!(*this == right) を返します。 |
operator= |
この既定のメンバー代入演算子は想定どおりに動作します。 |
operator== |
*this とright の両方がシーケンス末尾反復子であるか、両方がシーケンス末尾反復子でない場合にのみ、true を返します。 |
operator* |
myentry を返します。 |
operator-> |
&**this を返します。 |
operator++ |
increment() を呼び出してから、*this を返します。または、オブジェクトのコピーを作成し、increment() を呼び出して、コピーを返します。 |
要件
ヘッダー: <filesystem>
名前空間: std::filesystem
directory_iterator::directory_iterator
1 つ目のコンストラクターは、end-of-sequence 反復子を生成します。 2 番目と 3 番目のコンストラクターはmydir
にpval
を格納し、mydir
を開いてディレクトリとして読み取ろうとします。 成功した場合は、ディレクトリの最初のファイル名を myentry
に格納し、成功しなかった場合は end-of-sequence 反復子を生成します。
既定のコンストラクターは想定どおりに動作します。
directory_iterator() noexcept;
explicit directory_iterator(const path& pval);
directory_iterator(const path& pval, error_code& ec) noexcept;
directory_iterator(const directory_iterator&) = default;
directory_iterator(directory_iterator&&) noexcept = default;
パラメーター
pval
保存されているファイル名のパス。
ec
状態のエラー コード。
directory_iterator
格納されているオブジェクト。
directory_iterator::increment
この関数は、ディレクトリ内の次のファイル名に進もうとします。 成功した場合は、myentry
にそのファイル名を格納します。成功しなかった場合は、end-of-sequence 反復子を生成します。
directory_iterator& increment(error_code& ec) noexcept;
directory_iterator::operator!=
このメンバー演算子は、 !(*this == right)
を返します。
bool operator!=(const directory_iterator& right) const;
パラメーター
right
directory_iterator
と比較されるdirectory_iterator
。
directory_iterator::operator=
この既定のメンバー代入演算子は想定どおりに動作します。
directory_iterator& operator=(const directory_iterator&) = default;
directory_iterator& operator=(directory_iterator&&) noexcept = default;
パラメーター
right
directory_iterator
内にコピーされる directory_iterator
。
directory_iterator::operator==
メンバー演算子は、*this
とright
の両方がシーケンス末尾反復子であるか、両方がシーケンスの末尾反復子でない場合にのみ、true
を返します。
bool operator==(const directory_iterator& right) const;
パラメーター
right
directory_iterator
と比較される directory_iterator。
directory_iterator::operator*
このメンバー演算子は、 myentry
を返します。
const directory_entry& operator*() const;
directory_iterator::operator->
このメンバー関数は、&**this
を返します。
const directory_entry * operator->() const;
directory_iterator::operator++
最初のメンバー関数は increment()
を呼び出し、*this
を返します。 2 つ目のメンバー関数は、オブジェクトのコピーを作成して、increment()
を呼び出してから、そのコピーを返します。
directory_iterator& operator++();
directory_iterator& operator++(int);
パラメーター
int
増分の数。