c++ - 在 C++ 中为 filesystem::copy 使用多个复制选项

标签 c++ c++17

我正在使用文件系统 来复制一个目录。我希望以递归方式复制目录并覆盖任何现有文件。

我使用以下代码来复制目录并且它有效。但是,我只能为 copy_options 设置 recursiveoverwrite_existing,不能同时设置。

filesystem::copy(pathInput, pathOutput, filesystem::copy_options::recursive);

有没有一种方法可以将多个选项与复制功能一起使用?

我正在使用 this site作为选项的引用,但它没有说明同时使用多个选项。

最佳答案

他们是位标志所以

filesystem::copy(pathInput, pathOutput, filesystem::copy_options::recursive | filesystem::copy_options::overwrite_existing)

要添加更多细节,在较低级别上,每个标志都是一个整数位(开/关),所以...

01 = 覆盖 10 = 递归 11 = 两者 00 = 无

|运算符是一个二元运算符,或者如果任一位(或两者)为真则等于真,因此:

01 | 10 = 11

00 | 11 = 11

11 | 11 = 11

00 | 00 = 00

关于c++ - 在 C++ 中为 filesystem::copy 使用多个复制选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256314/

相关文章:

c++ - basic_stringbuf 没有名为 'freeze' 的成员

c++ - 二叉搜索树——删除功能不起作用

c++ - 如何使 C++ 编译时计算程序递归级别更深?

c++ - 如果 constexpr 给出错误,则实例化模板函数为 false

c++ - 为什么 `std::byte` 是枚举类而不是类?

c++ - #undef C++ 的作用域

C++ cout 副作用排序

c++ - 从文件中读取任意长度的字节到字符串 C++

c++ - directory_iterator 和/或 recursive_directory_iterator 是否保证返回相对路径?

c++ - 重载可变参数模板方法