名前空間
変種
操作

std::experimental::filesystem::directory_iterator

From cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
ヘッダー <experimental/filesystem> で定義されています
class directory_iterator;
(filesystem TS)

directory_iterator は、ディレクトリのエントリ(サブディレクトリは訪問しません)を反復処理する LegacyInputIterator です。反復順序は未指定ですが、各ディレクトリエントリは1回だけ訪問されます。特別なパス名 dotdot-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"

[編集] 関連項目

ディレクトリとそのサブディレクトリの内容を指すイテレータ
(クラス) [編集]
ディレクトリの内容をイテレートするためのオプション
(列挙型) [編集]
ディレクトリエントリ
(クラス) [編集]
English 日本語 中文(简体) 中文(繁體)