<experimental/filesystem> 列挙型

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> 演算子