std::experimental::filesystem::copy_options
From cppreference.com
< cpp | experimental | fs
Defined in header <experimental/filesystem>
|
||
enum class copy_options { none = 0, |
(filesystem TS) | |
This type represents available options that control the behavior of the copy() and copy_file() function.
copy_options
satisfies the requirements of BitmaskType (which means the bitwise operators operator&, operator|, operator^, operator~, operator&=, operator|=, and operator^= are defined for this type).
[edit] Member constants
At most one copy option in each of the following options groups may be present, otherwise the behavior of the copy functions is undefined.
Member constant | Value | Meaning |
---|---|---|
options controlling copy_file() when the file already exists | ||
none
|
0 | Report an error (default behavior). |
skip_existing
|
1 | Keep the existing file, without reporting an error. |
overwrite_existing
|
2 | Replace the existing file. |
update_existing
|
4 | Replace the existing file only if it is older than the file being copied. |
options controlling the effects of copy() on subdirectories | ||
none
|
0 | Skip subdirectories (default behavior). |
recursive
|
8 | Recursively copy subdirectories and their content. |
options controlling the effects of copy() on symbolic links | ||
none
|
0 | Follow symlinks (default behavior). |
copy_symlinks
|
16 | Copy symlinks as symlinks, not as the files they point to. |
skip_symlinks
|
32 | Ignore symlinks. |
options controlling the kind of copying copy() does | ||
none
|
0 | Copy file content (default behavior). |
directories_only
|
64 | Copy the directory structure, but do not copy any non-directory files. |
create_symlinks
|
128 | Instead of creating copies of files, create symlinks pointing to the originals. Note: the source path must be an absolute path unless the destination path is in the current directory. |
create_hard_links
|
256 | Instead of creating copies of files, create hardlinks that resolve to the same files as the originals. |
[edit] Example
Run this code
#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"); }
[edit] See also
copies files or directories (function) | |
copies file contents (function) |