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 */
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). none represents the empty bitmask; every other enumerator represents a distinct bitmask element.
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 Meaning options controlling copy_file() when the file already existsnone
Report an error (default behavior). skip_existing
Keep the existing file, without reporting an error. overwrite_existing
Replace the existing file. update_existing
Replace the existing file only if it is older than the file being copied. options controlling the effects of copy() on subdirectories none
Skip subdirectories (default behavior). recursive
Recursively copy subdirectories and their content. options controlling the effects of copy() on symbolic links none
Follow symlinks (default behavior). copy_symlinks
Copy symlinks as symlinks, not as the files they point to. skip_symlinks
Ignore symlinks. options controlling the kind of copying copy() does none
Copy file content (default behavior). directories_only
Copy the directory structure, but do not copy any non-directory files. create_symlinks
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
Instead of creating copies of files, create hardlinks that resolve to the same files as the originals. [edit] Example
#include <cstdlib> #include <filesystem> #include <fstream> #include <iostream> 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) const auto copyOptions = fs::copy_options::update_existing | fs::copy_options::recursive | fs::copy_options::directories_only ; fs::copy("sandbox", "sandbox_copy", copyOptions); static_cast<void>(std::system("tree")); fs::remove_all("sandbox"); fs::remove_all("sandbox_copy"); }
Possible output:
. âââ sandbox â âââ dir â â âââ subdir â âââ dir2 â âââ file1.txt â âââ file2.txt âââ sandbox_copy âââ dir â âââ subdir âââ dir2 8 directories, 2 files[edit] See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4