std::experimental::filesystem:: copy_options
|
Определено в заголовочном файле
<experimental/filesystem>
|
||
|
enum
class
copy_options
{
none
=
0
,
|
(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"); }
Смотрите также
|
копирует файлы или директории
(функция) |
|
|
копирует содержимое файлов
(функция) |