| Defined in header
<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
};
| (since C++17) |
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).
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 |
#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");
}| (C++17)
| copies files or directories (function) |
| (C++17)
| copies file contents (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/filesystem/copy_options