在线文档教程
C++
文件系统 | Filesystem

std::filesystem::copy_options

文件系统::复制[医]备选方案

Defined in header
enum class copy_options { none = /* unspecified */, skip_existing = /* unspecified */, overwrite_existing = /* unspecified */, update_existing = /* unspecified */, recursive = /* unspecified */, copy_symlinks = /* unspecified */, skip_symlinks = /* unspecified */, directories_only = /* unspecified */, create_symlinks = /* unspecified */, create_hard_links = /* unspecified */ };(since C++17)

此类型表示控制copy()copy_file()功能。

copy_options满足…的要求BitmaskType%28,这意味着按位运算符operator&,,,operator|,,,operator^,,,operator~,,,operator&=,,,operator|=,和operator^=为此类型%29定义。

成员常数

以下选项组中最多可能存在一个复制选项,否则复制函数的行为是未定义的。

Member constantMeaning

选项控制拷贝[医]当文件已经存在时,文件%28%29

没有报告错误%28默认行为%29

跳过[医]现有保存现有文件,而不报告错误。

覆写[医]现有替换现有文件

更新[医]仅当现有文件比要复制的文件旧时才替换现有文件

控制复制%28%29对子目录的影响的选项

None Skip子目录%28默认行为%29

递归复制子目录及其内容

控制复制%28%29对符号链接的影响的选项

没有一个遵循符号链接%28默认行为%29

复制[医]符号链接将符号链接复制为符号链接,而不是它们指向的文件。

跳过[医]符号链接忽略符号链接

控制复制类型%28%29的选项

不复制文件内容%28默认行为%29

目录[医]只复制目录结构,但不复制任何非目录文件。

创造[医]符号链接,而不是创建文件副本,创建指向原始文件的符号链接。注意:除非目标路径位于当前目录中,否则源路径必须是绝对路径。

创造[医]硬[医]链接,而不是创建文件的副本,创建硬链接解析到相同的文件作为原件。

二次

#include <iostream> #include <fstream> #include <filesystem> namespace fs = std::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" }

二次

另见

copy (C++17)copies files or directories (function)
copy_file (C++17)copies file contents (function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/filesystem/Copy[医]备选方案