Namespaces
Variants

std::experimental::filesystem:: copy_options

From cppreference.net
Определено в заголовочном файле <experimental/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

} ;
(filesystem TS)

Этот тип представляет доступные опции, которые управляют поведением функции copy() и copy_file() .

copy_options удовлетворяет требованиям BitmaskType (что означает, что для этого типа определены побитовые операторы operator & , operator | , operator ^ , operator~ , operator & = , operator | = и operator ^ = ).

Константы-члены

В каждой из следующих групп опций может присутствовать не более одной опции копирования, иначе поведение функций копирования не определено.

Константа-член Значение Значение
Опции управления copy_file() когда файл уже существует
none 0 Сообщить об ошибке (поведение по умолчанию).
skip_existing 1 Сохранить существующий файл без сообщения об ошибке.
overwrite_existing 2 Заменить существующий файл.
update_existing 4 Заменить существующий файл только если он старше копируемого файла.
Опции управления эффектами copy() на поддиректории
none 0 Пропустить поддиректории (поведение по умолчанию).
recursive 8 Рекурсивно копировать поддиректории и их содержимое.
Опции управления эффектами copy() на символические ссылки
none 0 Следовать симлинкам (поведение по умолчанию).
copy_symlinks 16 Копировать симлинки как симлинки, а не как файлы, на которые они указывают.
skip_symlinks 32 Игнорировать симлинки.
Опции управления типом копирования, который выполняет copy()
none 0 Копировать содержимое файла (поведение по умолчанию).
directories_only 64 Копировать структуру директорий, но не копировать файлы, не являющиеся директориями.
create_symlinks 128 Вместо создания копий файлов создавать симлинки, указывающие на оригиналы. Примечание: исходный путь должен быть абсолютным, если путь назначения не находится в текущей директории.
create_hard_links 256 Вместо создания копий файлов создавать жесткие ссылки, указывающие на те же файлы, что и оригиналы.

Пример

#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"); // копировать файл
    fs::copy("sandbox/dir", "sandbox/dir2"); // копировать директорию (не рекурсивно)
    // sandbox содержит 2 файла и 2 директории, одна из которых имеет поддиректорию
    // sandbox/file1.txt
    // sandbox/file2.txt
    // sandbox/dir2
    // sandbox/dir
    //    sandbox/dir/subdir
    fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive);
    // sandbox/copy содержит копии вышеуказанных файлов и поддиректорий
    fs::remove_all("sandbox");
}

Смотрите также

копирует файлы или директории
(функция)
копирует содержимое файлов
(функция)