Namensräume
Varianten
Aktionen

std::experimental::filesystem::copy_options

Von cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
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

};
(Dateisystem-TS)

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

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

[bearbeiten] Member-Konstanten

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

Member-Konstante Wert Bedeutung
Optionen, die copy_file() steuern, wenn die Datei bereits existiert
keine 0 Melde einen Fehler (Standardverhalten).
skip_existing 1 Behalte die vorhandene Datei bei, ohne einen Fehler zu melden.
overwrite_existing 2 Ersetze die vorhandene Datei.
update_existing 4 Ersetze die vorhandene Datei nur, wenn sie älter ist als die zu kopierende Datei.
Optionen, die die Auswirkungen von copy() auf Unterverzeichnisse steuern
keine 0 Überspringe Unterverzeichnisse (Standardverhalten).
recursive 8 Kopiere Unterverzeichnisse und deren Inhalt rekursiv.
Optionen, die die Auswirkungen von copy() auf symbolische Links steuern
keine 0 Folge Symlinks (Standardverhalten).
copy_symlinks 16 Kopiere Symlinks als Symlinks, nicht als die Dateien, auf die sie zeigen.
skip_symlinks 32 Ignoriere Symlinks.
Optionen, die die Art der Kopierung steuern, die copy() durchführt
keine 0 Kopiere Dateiinhalt (Standardverhalten).
directories_only 64 Kopiere die Verzeichnisstruktur, aber kopiere keine Nicht-Verzeichnis-Dateien.
create_symlinks 128 Anstatt Kopien von Dateien zu erstellen, erstelle symbolische Links, die auf die Originale zeigen. 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, erstelle Hardlinks, die auf dieselben Dateien wie die Originale verweisen.

[bearbeiten] 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"); // copy file
    fs::copy("sandbox/dir", "sandbox/dir2"); // copy directory (non-recursive)
    // sandbox holds 2 files and 2 directories, one of which has a subdirectory
    // sandbox/file1.txt
    // sandbox/file2.txt
    // sandbox/dir2
    // sandbox/dir
    //    sandbox/dir/subdir
    fs::copy("sandbox", "sandbox/copy", fs::copy_options::recursive);
    // sandbox/copy holds copies of the above files and subdirectories
    fs::remove_all("sandbox");
}

[bearbeiten] Siehe auch

kopiert Dateien oder Verzeichnisse
(Funktion) [bearbeiten]
kopiert Dateiinhalte
(Funktion) [bearbeiten]