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

履歴 編集

class
<filesystem>

std::filesystem::directory_iterator(C++17)

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

処理系