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;
}
}
23
fs::directory_options::follow_directory_symlink)) {
#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",
出力例
"dir_b/b.txt"
"dir_b/dir_a"
"dir_b/dir_a/a.txt"
バージョン
言語
- C++17
処理系
- Clang: 7.0 ✅
- GCC: 8.2 ✅
- Visual C++: