Namensräume
Varianten
Aktionen

std::experimental::filesystem::path

Von cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
 
Definiert im Header <experimental/filesystem>
class path;
(Dateisystem-TS)

Objekte vom Typ path repräsentieren Pfade in einem Dateisystem. Es werden nur syntaktische Aspekte von Pfaden behandelt: Der Pfadname kann einen nicht existierenden Pfad darstellen oder sogar einen, der auf dem aktuellen Dateisystem oder Betriebssystem nicht existieren darf.

Der Pfadname hat folgende Syntax

  1. root-name(optional): identifiziert das Stammverzeichnis in einem Dateisystem mit mehreren Stammverzeichnissen (wie z.B. "C:" oder "//myserver". POSIX-Dateisysteme haben ein einzelnes Stammverzeichnis.
  2. root-directory(optional): ein Verzeichnistrenner, der, wenn vorhanden, diesen Pfad als absolut markiert. Wenn er fehlt (und das erste Element außer dem Stammverzeichnis ein Dateiname ist), dann ist der Pfad relativ und erfordert einen anderen Pfad als Startposition, um zu einem Dateinamen aufgelöst zu werden.
  3. Null oder mehr der folgenden
  • file-name: eine Zeichensequenz, die keine Verzeichnistrenner oder bevorzugten Verzeichnistrenner sind (zusätzliche Einschränkungen können vom Betriebssystem oder Dateisystem auferlegt werden). Dieser Name kann eine Datei, einen Hardlink, einen symbolischen Link oder ein Verzeichnis identifizieren. Zwei spezielle file-names werden erkannt
  • dot: der Dateiname, der aus einem einzelnen Punktzeichen . besteht, ist ein Verzeichnisname, der auf das aktuelle Verzeichnis verweist.
  • dot-dot: der Dateiname, der aus zwei Punktzeichen .. besteht, ist ein Verzeichnisname, der auf das übergeordnete Verzeichnis verweist.
  • directory-separators: das Schrägstrichzeichen / oder das als path::preferred_separator bereitgestellte alternative Zeichen. Wenn dieses Zeichen wiederholt wird, wird es als einzelner Verzeichnistrenner behandelt: /usr///////lib ist dasselbe wie /usr/lib.

Der Pfad kann elementweise über Iteratoren durchlaufen werden, die von den Funktionen begin() und end() zurückgegeben werden. Diese iterieren über Stammverzeichnisnamen, Stammverzeichnisse und die nachfolgenden Dateinamenelemente (Verzeichnistrenner werden übersprungen, mit Ausnahme desjenigen, das das Stammverzeichnis identifiziert). Wenn das letzte Element im Pfad ein Verzeichnistrenner ist, dereferenziert der letzte Iterator zu einem Dateinamen dot.

Der Aufruf einer beliebigen nicht-const-Memberfunktion eines path macht alle Iteratoren, die sich auf Elemente dieses Objekts beziehen, ungültig.

Wenn das Betriebssystem eine native Syntax verwendet, die sich von der oben beschriebenen portablen generischen Syntax unterscheidet, akzeptieren alle Bibliotheksfunktionen Pfadnamen in beiden Formaten.

Pfade sind implizit zu und von std::basic_strings konvertierbar, was es ermöglicht, sie mit anderen Dateisystem-APIs zu verwenden, z.B. als Argument für std::ifstream::open.

Inhalt

[edit] Membertypen

Typ Definition
value_type Zeichentyp, der von der nativen Codierung des Dateisystems verwendet wird: char unter POSIX, wchar_t unter Windows
string_type std::basic_string<value_type>
const_iterator Ein konstanter LegacyBidirectionalIterator mit einem value_type von path
iterator Ein Alias für const_iterator

[edit] Memberkonstanten

constexpr value_type preferred_separator
[static]
alternativer Verzeichnistrenner, der zusätzlich zum portablen / verwendet werden kann. Unter Windows ist dies das umgekehrte Schrägstrichzeichen \. Unter POSIX ist dies derselbe Schrägstrich / wie der portable Trenner
(öffentliche statische Member-Konstante)

[edit] Memberfunktionen

konstruiert einen path
(public member function) [edit]
zerstört ein path-Objekt
(public member function) [edit]
weist einen anderen Pfad zu
(public member function) [edit]
weist Inhalte zu
(public member function) [edit]
Verkettung
hängt Elemente an den Pfad an
(public member function) [edit]
verkettet zwei Pfade ohne Einführung eines Verzeichnistrenners
(public member function) [edit]
Modifizierer
löscht den Inhalt
(public member function) [edit]
konvertiert Verzeichnistrenner in den bevorzugten Verzeichnistrenner
(public member function) [edit]
entfernt die Dateinamen-Pfadkomponente
(public member function) [edit]
ersetzt die letzte Pfadkomponente durch einen anderen Pfad
(public member function) [edit]
ersetzt die Dateiendung
(public member function) [edit]
tauscht zwei Pfade
(public member function) [edit]
Format-Beobachter
gibt die native Version des Pfades zurück
(public member function) [edit]
gibt den Pfad im nativen Pfadnamen-Format als String zurück
(public member function) [edit]
gibt den Pfad im generischen Pfadnamen-Format als String zurück
(public member function) [edit]
Compare
vergleicht die lexikalischen Darstellungen zweier Pfade lexikographisch
(public member function) [edit]
Zerlegung
gibt den Root-Namen des Pfades zurück, falls vorhanden
(public member function) [edit]
gibt das Root-Verzeichnis des Pfades zurück, falls vorhanden
(public member function) [edit]
gibt den Root-Pfad des Pfades zurück, falls vorhanden
(public member function) [edit]
gibt den Pfad relativ zum Stammverzeichnis zurück
(public member function) [edit]
gibt den Pfad des übergeordneten Verzeichnisses zurück
(public member function) [edit]
gibt die Dateinamen-Pfadkomponente zurück
(public member function) [edit]
gibt die Stammkomponente des Pfads zurück
(public member function) [edit]
gibt die Dateiendungs-Pfadkomponente zurück
(public member function) [edit]
Abfragen
prüft, ob der Pfad leer ist
(public member function) [edit]
prüft, ob das entsprechende Pfadelement nicht leer ist
(public member function) [edit]
prüft, ob root_path() den Dateisystemspeicherort eindeutig identifiziert
(public member function) [edit]
Iteratoren
Iteratorzugriff auf den Pfad als Sequenz von Elementen
(public member function) [edit]

[edit] Nicht-Member-Funktionen

tauscht zwei Pfade
(function) [edit]
vergleicht zwei Pfade lexikographisch
(function) [edit]
verkettet zwei Pfade mit einem Verzeichnistrenner
(function) [edit]
führt Stream-Ein- und Ausgabe für einen Pfad durch
(function) [edit]
erstellt einen path aus einer UTF-8-kodierten Quelle
(function) [edit]