• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    enum
    <filesystem>

    std::filesystem::directory_options

    namespace std::filesystem {
      enum class directory_options {
        none,
        follow_directory_symlink,
        skip_permission_denied
      };
    }
    

    概要

    ディレクトリの走査オプションを表す、ビットマスクの列挙型。

    それぞれの列挙子の値は未規定

    列挙子 説明
    none ディレクトリのシンボリックリンクを無視し、アクセス許可されないファイルはエラーとなる (デフォルト)
    follow_directory_symlink ディレクトリのシンボリックリンクを無視せずに従う
    skip_permission_denied アクセス許可されないファイルを無視する

    #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_b");
      std::ofstream{"dir_b/b.txt"};
      fs::create_directory_symlink("../dir_a", "dir_b/dir_a");
    
      // シンボリックリンクのディレクトリも走査する
      for (const fs::directory_entry& x : fs::recursive_directory_iterator(
                                            "dir_b",
                                            fs::directory_options::follow_directory_symlink)) {
        std::cout << x.path() << std::endl;
      }
    }
    

    出力例

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

    バージョン

    言語

    • C++17

    処理系