• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class
    <filesystem>

    std::filesystem::directory_iterator

    namespace std::filesystem {
      class directory_iterator;
    }
    

    概要

    directory_iteratorは、ディレクトリ内を走査する入力イテレータクラスである。

    このイテレータは指定されたディレクトリ内のファイルを走査するが、ディレクトリ内のディレクトリをさらに走査はしない。再帰的にディレクトリを走査する場合は、std::filesystem::recursive_directory_iteratorクラスを使用する。

    ファイルの走査順序は未規定であり、ファイル名の辞書順に走査される保証はない。

    メンバ関数

    名前 説明 対応バージョン
    (constructor) コンストラクタ C++17
    ~directory_iterator(); デストラクタ C++17
    operator= 代入演算子 C++17
    operator* 間接参照演算子 C++17
    operator-> メンバアクセス演算子 C++17
    operator++ イテレータを進める C++17
    increment イテレータを進める C++17

    メンバ型

    名前 説明 対応バージョン
    iterator_category イテレータ種別 input_iterator_tag C++17
    value_type 要素型 directory_entry C++17
    difference_type イテレータの差を表す符号付き整数型 std::ptrdiff_t C++17
    pointer 要素へのポインタ型 const directory_entry* C++17
    reference 要素へのポインタ型 const directory_entry& C++17

    非メンバ関数

    イテレータ範囲

    名前 説明 対応バージョン
    begin 先頭要素へのイテレータを取得する C++17
    end 最後尾要素の次を指すイテレータを取得する C++17

    比較演算子

    名前 説明 対応バージョン
    operator== 等値比較 C++17
    operator!= 非等値比較 C++17

    #include <iostream>
    #include <filesystem>
    #include <fstream>
    
    namespace fs = std::filesystem;
    
    int main()
    {
      fs::create_directory("dir_a");
      std::ofstream{"dir_a/a.txt"};
    
      fs::create_directory("dir_a/dir_b");
      std::ofstream{"dir_a/dir_b/b.txt"};
    
      // dir_aディレクトリ直下に含まれる全ファイル・ディレクトリを出力
      for (const fs::directory_entry& x : fs::directory_iterator("dir_a")) {
        std::cout << x.path() << std::endl;
      }
    }
    

    出力例

    "dir_a/a.txt"
    "dir_a/dir_b"
    

    バージョン

    言語

    • C++17

    処理系