命名空间
变体
操作

std::experimental::filesystem::copy_options

来自 cppreference.com
< cpp‎ | experimental‎ | fs
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性 非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
定义在头文件 <experimental/filesystem>
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

};
(文件系统 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");
}

[编辑] 另请参阅

复制文件或目录
(函数) [编辑]
复制文件内容
(函数) [编辑]