Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This topic documents the enums in the filesystem header.
Requirements
Header: <experimental/filesystem>
Namespace: std::experimental::filesystem
copy_options
An enumeration of bitmask values that is used with copy and copy_file functions to specify behavior.
Syntax
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
Name | Description |
---|---|
none |
Perform the default behavior for the operation. |
skip_existing |
Do not copy if the file already exists, do not report an error. |
overwrite_existing |
Overwrite the file if it already exists. |
update_existing |
Overwrite the file if it already exists and is older than the replacement. |
recursive |
Recursively copy subdirectories and their contents. |
copy_symlinks |
Copy symbolic links as symbolic links, instead of copying the files they point to. |
skip_symlinks |
Ignore symbolic links. |
directories_only |
Only iterate over directories, ignore files. |
create_symlinks |
Make symbolic links instead of copying files. An absolute path must be used as the source path unless the destination is the current directory. |
create_hard_links |
Make hard links instead of copying files. |
directory_options
Specifies whether to follow symbolic links to directories or to ignore them.
Syntax
enum class directory_options {
none = 0,
follow_directory_symlink
};
Values
Name | Description |
---|---|
none |
Default behavior: ignore symbolic links to directories. Permission denied is an error. |
follow_directory_symlink |
Treat symbolic links to directories as actual directories. |
file_type
An enumeration for file types. The supported values are regular, directory, not_found, and unknown.
Syntax
enum class file_type {
not_found = -1,
none,
regular,
directory,
symlink,
block,
character,
fifo,
socket,
unknown
};
Values
Name | Value | Description |
---|---|---|
not_found |
-1 | Represents a file that does not exist. |
none |
0 | Represents a file that has no type attribute. (Not supported.) |
regular |
1 | Represents a conventional disk file. |
directory |
2 | Represents a directory. |
symlink |
3 | Represents a symbolic link. (Not supported.) |
block |
4 | Represents a block-special file on UNIX-based systems. (Not supported.) |
character |
5 | Represents a character-special file on UNIX-based systems. (Not supported.) |
fifo |
6 | Represents a FIFO file on UNIX-based systems. (Not supported.) |
socket |
7 | Represents a socket on UNIX based systems. (Not supported.) |
unknown |
8 | Represents a file whose status cannot be determined. |
perm_options
Includes values replace
, add
, remove
, and nofollow
.
enum class perm_options;
perms
Flags for file permissions. The supported values are essentially "readonly" and all. For a readonly file, none of the *_write bits are set. Otherwise the all
bit (0x0777) is set.
Syntax
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,
remove_perms = 0x20000,
resolve_symlinks = 0x40000
};