Namespaces
Variants

std::experimental::filesystem:: copy_options

From cppreference.net
Défini dans l'en-tête <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)

Ce type représente les options disponibles qui contrôlent le comportement des fonctions copy() et copy_file() .

copy_options satisfait aux exigences de BitmaskType (ce qui signifie que les opérateurs bit à bit operator & , operator | , operator ^ , operator~ , operator & = , operator | = , et operator ^ = sont définis pour ce type).

Constantes membres

Au plus une option de copie dans chacun des groupes d'options suivants peut être présente, sinon le comportement des fonctions de copie est indéfini.

Constante de membre Valeur Signification
Options contrôlant copy_file() lorsque le fichier existe déjà
none 0 Signaler une erreur (comportement par défaut).
skip_existing 1 Conserver le fichier existant, sans signaler d'erreur.
overwrite_existing 2 Remplacer le fichier existant.
update_existing 4 Remplacer le fichier existant uniquement s'il est plus ancien que le fichier copié.
Options contrôlant les effets de copy() sur les sous-répertoires
none 0 Ignorer les sous-répertoires (comportement par défaut).
recursive 8 Copier récursivement les sous-répertoires et leur contenu.
Options contrôlant les effets de copy() sur les liens symboliques
none 0 Suivre les liens symboliques (comportement par défaut).
copy_symlinks 16 Copier les liens symboliques en tant que liens, non comme les fichiers pointés.
skip_symlinks 32 Ignorer les liens symboliques.
Options contrôlant le type de copie effectué par copy()
none 0 Copier le contenu des fichiers (comportement par défaut).
directories_only 64 Copier la structure de répertoires, mais ne pas copier les fichiers non-répertoires.
create_symlinks 128 Au lieu de créer des copies de fichiers, créer des liens symboliques pointant vers les originaux. Note : le chemin source doit être un chemin absolu sauf si le chemin de destination est dans le répertoire courant.
create_hard_links 256 Au lieu de créer des copies de fichiers, créer des liens physiques qui résolvent vers les mêmes fichiers que les originaux.

Exemple

#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"); // copier le fichier
    fs::copy("sandbox/dir", "sandbox/dir2"); // copier le répertoire (non récursif)
    // sandbox contient 2 fichiers et 2 répertoires, dont un avec un sous-répertoire
    // sandbox/file1.txt
    // sandbox/file2.txt
    // sandbox/dir2
    // sandbox/dir
    //    sandbox/dir/subdir
    fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive);
    // sandbox/copy contient des copies des fichiers et sous-répertoires ci-dessus
    fs::remove_all("sandbox");
}

Voir aussi

copie des fichiers ou répertoires
(fonction)
copie le contenu des fichiers
(fonction)