Namespaces
Variants

std::experimental::filesystem:: copy_options

From cppreference.net
Definiert im Header <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)

Dieser Typ repräsentiert verfügbare Optionen, die das Verhalten der copy() und copy_file() Funktion steuern.

copy_options erfüllt die Anforderungen von BitmaskType (was bedeutet, dass die bitweisen Operatoren operator & , operator | , operator ^ , operator~ , operator & = , operator | = und operator ^ = für diesen Typ definiert sind).

Member-Konstanten

In jeder der folgenden Optionsgruppen darf höchstens eine Kopieroption vorhanden sein, andernfalls ist das Verhalten der Kopierfunktionen undefiniert.

Member-Konstante Wert Bedeutung
Optionen zur Steuerung von copy_file() wenn die Datei bereits existiert
none 0 Einen Fehler melden (Standardverhalten).
skip_existing 1 Vorhandene Datei beibehalten, ohne Fehlermeldung.
overwrite_existing 2 Vorhandene Datei ersetzen.
update_existing 4 Vorhandene Datei nur ersetzen, wenn sie älter als die zu kopierende Datei ist.
Optionen zur Steuerung der Auswirkungen von copy() auf Unterverzeichnisse
none 0 Unterverzeichnisse überspringen (Standardverhalten).
recursive 8 Unterverzeichnisse und deren Inhalte rekursiv kopieren.
Optionen zur Steuerung der Auswirkungen von copy() auf symbolische Links
none 0 Symbolischen Links folgen (Standardverhalten).
copy_symlinks 16 Symbolische Links als Links kopieren, nicht als die Dateien, auf die sie verweisen.
skip_symlinks 32 Symbolische Links ignorieren.
Optionen zur Steuerung der Art des Kopiervorgangs von copy()
none 0 Dateiinhalt kopieren (Standardverhalten).
directories_only 64 Verzeichnisstruktur kopieren, aber keine Nicht-Verzeichnisdateien kopieren.
create_symlinks 128 Anstatt Kopien von Dateien zu erstellen, symbolische Links zu den Originalen erstellen. Hinweis: Der Quellpfad muss ein absoluter Pfad sein, es sei denn, der Zielpfad befindet sich im aktuellen Verzeichnis.
create_hard_links 256 Anstatt Kopien von Dateien zu erstellen, Hardlinks erstellen, die auf dieselben Dateien wie die Originale verweisen.

Beispiel

#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"); // Datei kopieren
    fs::copy("sandbox/dir", "sandbox/dir2"); // Verzeichnis kopieren (nicht rekursiv)
    // sandbox enthält 2 Dateien und 2 Verzeichnisse, eines davon mit Unterverzeichnis
    // sandbox/file1.txt
    // sandbox/file2.txt
    // sandbox/dir2
    // sandbox/dir
    //    sandbox/dir/subdir
    fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive);
    // sandbox/copy enthält Kopien der obigen Dateien und Unterverzeichnisse
    fs::remove_all("sandbox");
}

Siehe auch

kopiert Dateien oder Verzeichnisse
(Funktion)
kopiert Dateiinhalt
(Funktion)