Important
<experimental/filesystem> ヘッダーと std::experimental::filesystem 名前空間は、ファイル システム技術仕様 (TS) の事前標準実装を提供しました。 このドキュメントは、MSVC バージョン 14.51 以降で削除された MSVC の元のファイルシステム実装に対して記述されたコードに関して保持されます。 新しいコードでは、代わりに C++17 <filesystem> ヘッダーと std::filesystem 名前空間を使用します。 これらの列挙型に相当する標準については、 <filesystem> 列挙型を参照してください。
この記事では、従来の std::experimental::filesystem 実装の履歴にある列挙体について説明します。
Requirements
ヘッダー: <experimental/filesystem>
名前 空間:std::experimental::filesystem
copy_options
動作を指定するために コピー および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
};
Values
| 氏名 | Description |
|---|---|
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
};
Values
| 氏名 | Description |
|---|---|
none |
既定の動作: シンボリック リンクに従ってディレクトリにアクセスしないでください。 |
follow_directory_symlink |
ディレクトリをスキップするのではなく、シンボリック リンクに従ってください。 |
file_type
ファイルの種類の列挙型。
構文
enum class file_type {
not_found = -1,
none = 0,
regular,
directory,
symlink,
block,
character,
fifo,
socket,
unknown
};
これらの列挙子の基になる整数値は固定されていないため、特定の数値に依存しないでください。
Values
| 氏名 | Description |
|---|---|
none |
ファイルの種類がまだ評価されていないか、評価中にエラーが発生しました。 |
not_found |
ファイルが見つかりませんでした。 |
regular |
通常のファイル。 |
directory |
ディレクトリ。 |
symlink |
シンボリック リンク。 |
block |
ブロック特殊ファイル。 (Windowsでは使用されません。 |
character |
文字特殊ファイル。 (Windowsでは使用されません。 |
fifo |
FIFO またはパイプ ファイル。 (Windowsでは使用されません。 |
socket |
ソケット。 (Windowsでは使用されません。 |
unknown |
ファイルは存在しますが、その種類を特定できません。 |
perms
ファイルアクセス許可ビットのビットマスク列挙と、 permissions 関数がそれらのビットの適用方法を決定するために使用するコントロール フラグ。 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,
add_perms = 0x10000, // control flag
remove_perms = 0x20000, // control flag
resolve_symlinks = 0x40000 // control flag
};
コントロール フラグ
permissions関数を個別のperm_options列挙で制御する C++17 std::filesystem実装とは異なり、標準の TS 実装では、perms自体に制御フラグが含まれています。
| 氏名 | Description |
|---|---|
add_perms |
指定したアクセス許可ビットを置き換えるのではなく、ファイルの現在のアクセス許可に追加します。 |
remove_perms |
ファイルの現在のアクセス許可から、指定したアクセス許可ビットを削除します。 |
resolve_symlinks |
シンボリック リンクを解決して、アクセス許可の変更がリンクではなくターゲット ファイルに適用されるようにします。 |
こちらも参照ください
<experimental/filesystem>
<experimental/filesystem>
関数
<experimental/filesystem> 演算子