<experimental/filesystem> Aufzählungen

Important

Der <experimental/filesystem> Header und der std::experimental::filesystem Namespace haben eine vorab standardmäßige Implementierung der Technischen Spezifikation (File System Technical Specification, TS) bereitgestellt. Diese Dokumentation wird für Code beibehalten, der mit der ursprünglichen Dateisystemimplementierung von MSVC geschrieben wurde, die ab MSVC Version 14.51 entfernt wurde. Verwenden Sie für neuen Code stattdessen den C++17-Header <filesystem> und den std::filesystem Namespace. Die Standardentsprechungen dieser Enumerationen finden Sie unter <filesystem> Enumerationen.

In diesem Artikel werden die Enumerationen in der historischen Vorstandardimplementierung std::experimental::filesystem dokumentiert.

Anforderungen

Kopfball:<experimental/filesystem>

Namespace:std::experimental::filesystem

copy_options

Eine Aufzählung von Bitmaskenwerten, die mit Kopier - und copy_file funktionen verwendet werden, um das Verhalten anzugeben.

Syntax

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
};

Werte

Name Description
none Führen Sie das Standardverhalten für den Vorgang aus.
skip_existing Kopieren Sie nicht, wenn die Datei bereits vorhanden ist, melden Sie keinen Fehler.
overwrite_existing Überschreiben Sie die Datei, wenn sie bereits vorhanden ist.
update_existing Überschreiben Sie die Datei, wenn sie bereits vorhanden ist und älter als der Ersatz ist.
recursive Rekursiv unterverzeichnisse und deren Inhalt kopieren.
copy_symlinks Kopieren Sie symbolische Verknüpfungen als symbolische Verknüpfungen, anstatt die Dateien zu kopieren, auf die sie verweisen.
skip_symlinks Symbolische Verknüpfungen ignorieren.
directories_only Nur über Verzeichnisse durchlaufen, Dateien ignorieren.
create_symlinks Erstellen Sie symbolische Verknüpfungen, anstatt Dateien zu kopieren. Ein absoluter Pfad muss als Quellpfad verwendet werden, es sei denn, das Ziel ist das aktuelle Verzeichnis.
create_hard_links Erstellen Sie feste Links, anstatt Dateien zu kopieren.

directory_options

Eine Bitmaskenaufzählung, die steuert, wie die Verzeichnisiteration symbolische Verknüpfungen mit Verzeichnissen verarbeitet.

Syntax

enum class directory_options {
   none = 0,
   follow_directory_symlink = 1
};

Werte

Name Description
none Standardverhalten: Folgen Sie nicht symbolischen Links zu Verzeichnissen.
follow_directory_symlink Folgen Sie symbolischen Links zu Verzeichnissen, anstatt sie zu überspringen.

file_type

Eine Aufzählung für Dateitypen.

Syntax

enum class file_type {
   not_found = -1,
   none = 0,
    regular,
    directory,
    symlink,
    block,
    character,
    fifo,
    socket,
    unknown
};

Die zugrunde liegenden ganzzahligen Werte dieser Enumeratoren sind nicht behoben, daher hängen Sie nicht von bestimmten numerischen Werten ab.

Werte

Name Description
none Der Dateityp wurde noch nicht ausgewertet, oder beim Auswerten ist ein Fehler aufgetreten.
not_found Die Datei wurde nicht gefunden.
regular Eine normale Datei.
directory Ein Verzeichnis.
symlink Ein symbolischer Zusammenhang.
block Eine blockspezifische Datei. (Wird für Windows nicht verwendet.)
character Eine zeichenspezifische Datei. (Wird für Windows nicht verwendet.)
fifo Eine FIFO- oder Pipedatei. (Wird für Windows nicht verwendet.)
socket Ein Socket. (Wird für Windows nicht verwendet.)
unknown Die Datei ist vorhanden, der Typ kann jedoch nicht bestimmt werden.

Perms

Eine Bitmaskenaufzählung von Dateiberechtigungsbits zusammen mit den Steuerelementkennzeichnungen, die von der permissions Funktion verwendet werden, um zu entscheiden, wie diese Bits angewendet werden sollen. Bei Windows sind die unterstützten Berechtigungswerte im Wesentlichen "schreibgeschützt" und all. Bei einer schreibgeschützten Datei werden keine Bits *_write festgelegt. Andernfalls wird das all Bit (0777) festgelegt.

Syntax

enum class perms {// names for permissions
   none = 0,
   owner_read = 0400,  // S_IRUSR
   owner_write = 0200, // S_IWUSR
   owner_exec = 0100,  // S_IXUSR
   owner_all = 0700,   // S_IRWXU
   group_read = 040,   // S_IRGRP
   group_write = 020,  // S_IWGRP
   group_exec = 010,   // S_IXGRP
   group_all = 070,    // S_IRWXG
   others_read = 04,   // S_IROTH
   others_write = 02,  // S_IWOTH
   others_exec = 01,   // S_IXOTH
   others_all = 07,    // S_IRWXO
   all = 0777,
   set_uid = 04000,    // S_ISUID
   set_gid = 02000,    // S_ISGID
   sticky_bit = 01000, // S_ISVTX
   mask = 07777,
   unknown = 0xFFFF,
   add_perms = 0x10000,       // control flag
   remove_perms = 0x20000,    // control flag
   resolve_symlinks = 0x40000 // control flag
};

Steuerelementkennzeichnungen

Im Gegensatz zur C++17-Implementierung std::filesystem , die die permissions Funktion mit einer separaten perm_options Enumeration steuert, trägt die vorstandarde TS-Implementierung die Steuerelementkennzeichnungen in perms sich selbst.

Name Description
add_perms Fügen Sie die angegebenen Berechtigungsbits zu den aktuellen Berechtigungen der Datei hinzu, anstatt sie zu ersetzen.
remove_perms Entfernen Sie die angegebenen Berechtigungsbits aus den aktuellen Berechtigungen der Datei.
resolve_symlinks Auflösen symbolischer Verknüpfungen, sodass die Berechtigungsänderung auf die Zieldatei und nicht auf den Link angewendet wird.

Siehe auch

<experimental/filesystem>
<experimental/filesystem> -Funktionen
<experimental/filesystem> Operatoren