std::experimental::filesystem::copy_options
来自 cppreference.com
< cpp | experimental | fs
定义在头文件 <experimental/filesystem> 中 |
||
enum class copy_options { none = 0, |
(文件系统 TS) | |
此类型表示控制 copy() 和 copy_file() 函数行为的可用选项。
copy_options
满足 BitmaskType 的需求(这意味着按位运算符 operator&, operator|, operator^, operator~, operator&=, operator|=, 和 operator^= 为此类型定义)。
[编辑] 成员常量
在以下选项组中,最多只能存在一个复制选项,否则复制函数的行为未定义。
成员常量 | 值 | 含义 |
---|---|---|
控制 copy_file() 在文件已存在时行为的选项 | ||
none
|
0 | 报告错误(默认行为)。 |
skip_existing
|
1 | 保留现有文件,不报告错误。 |
overwrite_existing
|
2 | 替换现有文件。 |
update_existing
|
4 | 仅当现有文件比要复制的文件旧时,才替换现有文件。 |
控制 copy() 对子目录的影响的选项 | ||
none
|
0 | 跳过子目录(默认行为)。 |
recursive
|
8 | 递归地复制子目录及其内容。 |
控制 copy() 对符号链接的影响的选项 | ||
none
|
0 | 遵循符号链接(默认行为)。 |
copy_symlinks
|
16 | 将符号链接复制为符号链接,而不是它们指向的文件。 |
skip_symlinks
|
32 | 忽略符号链接。 |
控制 copy() 进行的复制类型的选项 | ||
none
|
0 | 复制文件内容(默认行为)。 |
directories_only
|
64 | 复制目录结构,但不复制任何非目录文件。 |
create_symlinks
|
128 | 不创建文件的副本,而是创建指向原始文件的符号链接。注意:除非目标路径在当前目录中,否则源路径必须是绝对路径。 |
create_hard_links
|
256 | 不创建文件的副本,而是创建硬链接,这些硬链接解析为与原始文件相同的文件。 |
[编辑] 示例
运行此代码
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directories("sandbox/dir/subdir"); std::ofstream("sandbox/file1.txt").put('a'); fs::copy("sandbox/file1.txt", "sandbox/file2.txt"); // copy file fs::copy("sandbox/dir", "sandbox/dir2"); // copy directory (non-recursive) // sandbox holds 2 files and 2 directories, one of which has a subdirectory // sandbox/file1.txt // sandbox/file2.txt // sandbox/dir2 // sandbox/dir // sandbox/dir/subdir fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive); // sandbox/copy holds copies of the above files and subdirectories fs::remove_all("sandbox"); }
[编辑] 另请参阅
复制文件或目录 (函数) | |
复制文件内容 (函数) |