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

履歴 編集

function
<filesystem>

std::filesystem::recursive_directory_iterator::disable_recursion_pending(C++17)

void disable_recursion_pending();

概要

再帰を止める。

効果

ディレクトリパスを指している際にこの関数を呼び出すことによって、そのディレクトリに入らないようになる。

事後条件

#include <iostream>
#include <filesystem>
#include <fstream>

namespace fs = std::filesystem;

int main()
{
  fs::create_directory("dir");
  std::ofstream{"dir/a.txt"};
  fs::create_directory("dir/inner_dir");
  std::ofstream{"dir/inner_dir/b.txt"};

  fs::recursive_directory_iterator it{"dir"};
  fs::recursive_directory_iterator last{};

  std::cout << std::boolalpha;
  for (; it != last; ++it) {
    if (it->path().filename() == "inner_dir")
        it.disable_recursion_pending();

    std::cout << it->path() << " : " << it.recursion_pending() << std::endl;
  }
}

出力例

"dir/inner_dir" : false
"dir/a.txt" : true

バージョン

言語

  • C++17

処理系