std::experimental::filesystem::path::append, std::experimental::filesystem::path::operator/=
Von cppreference.com
< cpp | experimental | fs | path
| path& operator/=( const path& p ); |
(1) | (Dateisystem-TS) |
| template< class Source > path& operator/=( const Source& source ); |
(2) | (Dateisystem-TS) |
| template< class Source > path& append( const Source& source ); |
(3) | (Dateisystem-TS) |
| template< class InputIt > path& append( InputIt first, InputIt last ); |
(4) | (Dateisystem-TS) |
1) Fügt zuerst den bevorzugten Verzeichnistrennzeichen zu this hinzu, es sei denn, eine der folgenden Bedingungen ist wahr:
* das Trennzeichen wäre redundant (*this endet bereits mit einem Trennzeichen).
* *this ist leer, oder das Hinzufügen würde einen relativen Pfad auf andere Weise in einen absoluten Pfad umwandeln.
* p ist ein leerer Pfad.
* p.native() beginnt mit einem Verzeichnistrennzeichen.
Dann wird p.native() an den von *this verwalteten Pfadnamen angehängt.
2,3) Wie (1), aber akzeptiert jede std::basic_string, null-terminierte Multizeichenzeichenkette oder einen Eingabeiterator, der auf eine null-terminierte Multizeichenzeichenkette zeigt.
4) Wie (1), aber akzeptiert jedes Iteratorpaar, das eine Multizeichenzeichenkette bezeichnet.
Inhalt |
[bearbeiten] Parameter
| p | - | anzuhängender Pfadname |
| source | - | std::basic_string, null-terminierte Multizeichenzeichenkette oder ein Eingabeiterator, der auf eine null-terminierte Multizeichenzeichenkette zeigt, die einen Pfadnamen (im portablen oder nativen Format) darstellt |
| first, last | - | Paar von LegacyInputIteratoren, die eine Multizeichenkette bezeichnen, die einen Pfadnamen darstellt |
| Typanforderungen | ||
-InputIt muss die Anforderungen von LegacyInputIterator erfüllen. | ||
| -Der Werttyp von InputIt muss einer der kodierten Zeichentypen sein (char, wchar_t, char16_t und char32_t). | ||
[bearbeiten] Rückgabewert
*this
[bearbeiten] Ausnahmen
Kann filesystem_error bei Fehlern der zugrunde liegenden OS-API oder std::bad_alloc bei fehlgeschlagener Speicherzuweisung auslösen.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <experimental/filesystem> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "C:"; p1 /= "Users"; // does not insert a separator // "C:Users" is a relative path in Windows // adding directory separator would turn it to an absolute path std::cout << "\"C:\" / \"Users\" == " << p1 << '\n'; p1 /= "batman"; // inserts fs::path::preferred_separator, '\' on Windows std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n'; }
Mögliche Ausgabe
"C:" / "Users" == "C:Users" "C:" / "Users" / "batman" == "C:Users\batman"
[bearbeiten] Siehe auch
| verkettet zwei Pfade ohne Einführung eines Verzeichnistrenners (public member function) | |
| verkettet zwei Pfade mit einem Verzeichnistrenner (function) |