この記事では、<filesystem> ヘッダーの C++17 std::filesystem実装の列挙について説明します。
Note
このページでは、C++17 std::filesystem 列挙型について説明します。 MSVC が <experimental/filesystem>で提供した従来の列挙の履歴については、 <experimental/filesystem> 列挙型を参照してください。
要件
ヘッダー: <filesystem>
名前 空間:std::filesystem
copy_options
動作を指定するために copy 関数と copy_file 関数で使用するビットマスク値の列挙。
構文
enum class copy_options {
none = 0,
skip_existing = 1,
overwrite_existing = 2,
update_existing = 4,
recursive = 8,
copy_symlinks = 16,
skip_symlinks = 32,
directories_only = 64,
create_symlinks = 128,
create_hard_links = 256
};
値
| 名前 | 説明 |
|---|---|
none |
演算の既定の動作を実行します。 |
skip_existing |
ファイルが既に存在する場合はコピーしません。エラーをレポートしません。 |
overwrite_existing |
ファイルが既に存在する場合、ファイルを上書きします。 |
update_existing |
ファイルが既に存在し、そのファイルの方が古い場合、ファイルを上書きします。 |
recursive |
サブディレクトリとその内容を再帰的にコピーします。 |
copy_symlinks |
シンボリック リンクが示すファイルをコピーするのではなく、シンボリック リンクをシンボリック リンクとしてコピーします。 |
skip_symlinks |
シンボリック リンクを無視します。 |
directories_only |
ディレクトリに対してのみ反復処理を実行します。ファイルを無視します。 |
create_symlinks |
ファイルをコピーするのではなく、シンボリック リンクを作成します。 対象がカレント ディレクトリではない場合、ソース パスとして絶対パスを使用する必要があります。 |
create_hard_links |
ファイルをコピーするのではなく、ハード リンクを作成します。 |
directory_options
ディレクトリイテレーションがディレクトリへのシンボリック リンクとアクセス許可拒否エラーを処理する方法を制御するビットマスク列挙体。
構文
enum class directory_options {
none = 0,
follow_directory_symlink = 1,
skip_permission_denied = 2
};
値
| 名前 | 説明 |
|---|---|
none |
既定の動作: ディレクトリへのシンボリック リンクに従わないようにし、拒否されたアクセス許可をエラーとして扱います。 |
follow_directory_symlink |
ディレクトリをスキップするのではなく、シンボリック リンクに従ってください。 |
skip_permission_denied |
それ以外の場合はアクセス許可拒否エラーが発生するディレクトリをサイレント スキップします。 |
file_type
ファイルの種類の列挙型。
構文
enum class file_type {
none = 0,
not_found,
regular,
directory,
symlink,
block,
character,
fifo,
socket,
unknown
};
C++ 標準では、これらの列挙子の基になる整数値は修正されないため、特定の数値に依存しないでください。
値
| 名前 | 説明 |
|---|---|
none |
ファイルの種類がまだ評価されていないか、評価中にエラーが発生しました。 |
not_found |
ファイルが見つかりませんでした。 |
regular |
通常のファイル。 |
directory |
ディレクトリ。 |
symlink |
シンボリック リンク。 |
block |
ブロック特殊ファイル。 (Windowsでは使用されません。 |
character |
文字特殊ファイル。 (Windowsでは使用されません。 |
fifo |
FIFO またはパイプ ファイル。 (Windowsでは使用されません。 |
socket |
ソケット。 (Windowsでは使用されません。 |
unknown |
ファイルは存在しますが、その種類を特定できません。 |
perm_options
permissions関数がアクセス許可ビットを適用する方法を制御するビットマスク列挙体。
構文
enum class perm_options {
replace = 1,
add = 2,
remove = 4,
nofollow = 8
};
値
| 名前 | 説明 |
|---|---|
replace |
ファイルのアクセス許可ビットを、指定したアクセス許可に置き換えます。 |
add |
指定したアクセス許可ビットをファイルの現在のアクセス許可に追加します。 |
remove |
ファイルの現在のアクセス許可から、指定したアクセス許可ビットを削除します。 |
nofollow |
解決先のファイルではなく、シンボリック リンク自体のアクセス許可を変更します。 |
perms
ファイルアクセス許可ビットのビットマスク列挙。 Windowsでは、サポートされる値は基本的に "読み取り専用" であり、all。 読み取り専用ファイルの場合、 *_write ビットは設定されていません。 それ以外の場合は、 all ビット (0777) が設定されます。
構文
enum class perms {// names for permissions
none = 0,
owner_read = 0400, // S_IRUSR
owner_write = 0200, // S_IWUSR
owner_exec = 0100, // S_IXUSR
owner_all = 0700, // S_IRWXU
group_read = 040, // S_IRGRP
group_write = 020, // S_IWGRP
group_exec = 010, // S_IXGRP
group_all = 070, // S_IRWXG
others_read = 04, // S_IROTH
others_write = 02, // S_IWOTH
others_exec = 01, // S_IXOTH
others_all = 07, // S_IRWXO
all = 0777,
set_uid = 04000, // S_ISUID
set_gid = 02000, // S_ISGID
sticky_bit = 01000, // S_ISVTX
mask = 07777,
unknown = 0xFFFF
};