Namespaces
Variants

std::experimental::filesystem:: copy_options

From cppreference.net
Definido en el encabezado <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)

Este tipo representa las opciones disponibles que controlan el comportamiento de la copy() y la copy_file() función.

copy_options satisface los requisitos de BitmaskType (lo que significa que los operadores bit a bit operator & , operator | , operator ^ , operator~ , operator & = , operator | = , y operator ^ = están definidos para este tipo).

Constantes de miembro

A lo sumo, una opción de copia en cada uno de los siguientes grupos de opciones puede estar presente; de lo contrario, el comportamiento de las funciones de copia es indefinido.

Constante de miembro Valor Significado
Opciones que controlan copy_file() cuando el archivo ya existe
none 0 Reportar un error (comportamiento predeterminado).
skip_existing 1 Mantener el archivo existente, sin reportar un error.
overwrite_existing 2 Reemplazar el archivo existente.
update_existing 4 Reemplazar el archivo existente solo si es más antiguo que el archivo que se está copiando.
Opciones que controlan los efectos de copy() en subdirectorios
none 0 Omitir subdirectorios (comportamiento predeterminado).
recursive 8 Copiar recursivamente subdirectorios y su contenido.
Opciones que controlan los efectos de copy() en enlaces simbólicos
none 0 Seguir enlaces simbólicos (comportamiento predeterminado).
copy_symlinks 16 Copiar enlaces simbólicos como enlaces simbólicos, no como los archivos a los que apuntan.
skip_symlinks 32 Ignorar enlaces simbólicos.
Opciones que controlan el tipo de copia que realiza copy()
none 0 Copiar contenido de archivos (comportamiento predeterminado).
directories_only 64 Copiar la estructura de directorios, pero no copiar ningún archivo que no sea directorio.
create_symlinks 128 En lugar de crear copias de archivos, crear enlaces simbólicos que apunten a los originales. Nota: la ruta de origen debe ser una ruta absoluta a menos que la ruta de destino esté en el directorio actual.
create_hard_links 256 En lugar de crear copias de archivos, crear enlaces físicos que resuelvan a los mismos archivos que los originales.

Ejemplo

#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"); // copiar archivo
    fs::copy("sandbox/dir", "sandbox/dir2"); // copiar directorio (no recursivo)
    // sandbox contiene 2 archivos y 2 directorios, uno de los cuales tiene un subdirectorio
    // sandbox/file1.txt
    // sandbox/file2.txt
    // sandbox/dir2
    // sandbox/dir
    //    sandbox/dir/subdir
    fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive);
    // sandbox/copy contiene copias de los archivos y subdirectorios anteriores
    fs::remove_all("sandbox");
}

Véase también

copia archivos o directorios
(función)
copia contenidos de archivos
(función)