次の方法で共有


directory_iterator クラス

ディレクトリのファイル名を走査する入力反復子を表します。 反復子 X の場合、式 *X の結果は、ファイル名とそのステータスに関する既知の情報をラップする directory_entry クラスのオブジェクトになります。

このクラスは、走査するディレクトリの名前を表す path 型のオブジェクト (ここでは、説明のために mydir という名前にします) と、ディレクトリ シーケンス内の現在のファイル名を表す directory_entry 型のオブジェクト (myentry という名前にします) を格納します。 既定で構築される型 directory_entry のオブジェクトは、空の mydir のパス名を持ち、end-of-sequence 反復子を表します。

たとえば、エントリと を含むディレクトリ abcdef エントリと 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== *thisrightの両方がシーケンス末尾反復子であるか、両方がシーケンス末尾反復子でない場合にのみ、trueを返します。
operator* myentry を返します。
operator-> &**this を返します。
operator++ increment() を呼び出してから、*this を返します。または、オブジェクトのコピーを作成し、increment() を呼び出して、コピーを返します。

要件

ヘッダー: <filesystem>

名前空間: std::filesystem

directory_iterator::directory_iterator

1 つ目のコンストラクターは、end-of-sequence 反復子を生成します。 2 番目と 3 番目のコンストラクターはmydirpvalを格納し、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==

メンバー演算子は、*thisrightの両方がシーケンス末尾反復子であるか、両方がシーケンスの末尾反復子でない場合にのみ、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
増分の数。

関連項目

<filesystem>
ヘッダー ファイル リファレンス
ファイル システムのナビゲーション (C++)