Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为filesystem::copy in C+;使用多个复制选项+;_C++_C++17 - Fatal编程技术网

C++ 为filesystem::copy in C+;使用多个复制选项+;

C++ 为filesystem::copy in C+;使用多个复制选项+;,c++,c++17,C++,C++17,我正在使用文件系统复制目录。我希望递归复制目录并覆盖任何现有文件 我使用下面的代码复制目录,它可以正常工作。但是,我只能为复制选项设置递归或覆盖现有,而不能同时设置这两个选项 filesystem::copy(pathInput, pathOutput, filesystem::copy_options::recursive); 是否有一种方法可以使用复制功能的多个选项 我使用它作为选项的参考,但它没有说明同时使用多个选项。它们是位标志,所以 filesystem::copy(pathInpu

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

我使用下面的代码复制目录,它可以正常工作。但是,我只能为
复制
选项设置
递归
覆盖现有
,而不能同时设置这两个选项

filesystem::copy(pathInput, pathOutput, filesystem::copy_options::recursive);
是否有一种方法可以使用复制功能的多个选项

我使用它作为选项的参考,但它没有说明同时使用多个选项。

它们是位标志,所以

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

他们被咬了,所以

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


使用您提供的参考站点,它在常量定义的正上方显示

以下每个选项组中最多只能有一个复制选项,否则复制函数的行为未定义


因此,您可以只做其他人所说的和/或这两个值,因为它们来自不同的选项组。

使用您提供的参考站点,它在所使用的常量定义之上

以下每个选项组中最多只能有一个复制选项,否则复制函数的行为未定义


因此,您可以按照其他人所说的做,或者将这两个值放在一起,因为它们来自不同的选项组。

它们正是位标志。请参阅:“
copy\u options
满足
BitmaskType
的要求(这意味着按位运算符
运算符&
运算符^
运算符
运算符&=
运算符&=
,以及
运算符^=
。”谢谢,我试图使用位运算符
&
而不是
。更新了我的代码,现在可以工作了。它们正是位标志。请参阅:“
copy\u options
满足
BitmaskType
的要求(这意味着按位运算符
运算符&
运算符^
运算符
运算符&=
运算符&=
,以及
运算符^=
。”谢谢,我试图使用位运算符
&
而不是
。更新了我的代码,现在就可以使用了。OP:您链接到的页面上有正确的copy_选项,这些选项满足BitmaskType的要求(这意味着为该类型定义了位运算符&、运算符|、运算符^、运算符~、运算符&=、运算符|=、运算符^=)。无表示空位掩码;其他每一个枚举数都表示一个不同的位掩码元素。OP:您链接到的页面上有权使用copy_选项满足BitmaskType的要求(这意味着为该类型定义了位运算符&、运算符|、运算符^、运算符~、运算符&=、运算符|=、运算符^=)。无表示空位掩码;其他每个枚举数表示一个不同的位掩码元素。