Namespaces
Variants

std::experimental::filesystem::path:: append, std::experimental::filesystem::path:: operator/=

From cppreference.net
path & operator / = ( const path & p ) ;
(1) (filesystem TS)
template < class Source >
path & operator / = ( const Source & source ) ;
(2) (filesystem TS)
template < class Source >
path & append ( const Source & source ) ;
(3) (filesystem TS)
template < class InputIt >
path & append ( InputIt first, InputIt last ) ;
(4) (filesystem TS)
1) Fügt zunächst das bevorzugte Verzeichnistrennzeichen an this an, außer wenn eine der folgenden Bedingungen zutrifft:
* der Trennzeichen wäre redundant ( * this endet bereits mit einem Trennzeichen).
* * this ist leer, oder das Hinzufügen würde einen relativen Pfad auf eine andere Weise in einen absoluten Pfad verwandeln.
* p ist ein leerer Pfad.
* p. native ( ) beginnt mit einem Verzeichnistrennzeichen.
Anschließend fügt p. native ( ) dem von * this verwalteten Pfadnamen hinzu.
2,3) Gleich wie (1) , akzeptiert jedoch jeden std:: basic_string , nullterminierten Multicharacter-String oder einen Eingabe-Iterator, der auf eine nullterminierte Multicharacter-Sequenz zeigt.
4) Gleich wie (1) , akzeptiert jedoch jedes Iteratorpaar, das eine Multicharacter-Zeichenkette bezeichnet.

Inhaltsverzeichnis

Parameter

p - anzuhängender Pfadname
source - std:: basic_string , nullterminierter Mehrbyte-Zeichenstring oder ein Eingabe-Iterator, der auf eine nullterminierte Mehrbyte-Zeichensequenz zeigt, die einen Pfadnamen darstellt (entweder im portablen oder im nativen Format)
first, last - Paar von LegacyInputIterator s , die eine Mehrbyte-Zeichensequenz angeben, 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 ).

Rückgabewert

* this

Ausnahmen

Kann filesystem_error bei zugrundeliegenden OS-API-Fehlern werfen oder std:: bad_alloc bei Speicherallokierungsfehlern.

Beispiel

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
    fs::path p1 = "C:";
    p1 /= "Users"; // fügt keinen Separator ein
                   // "C:Users" ist ein relativer Pfad unter Windows
                   // das Hinzufügen eines Verzeichnisseparators würde ihn zu einem absoluten Pfad machen
    std::cout << "\"C:\" / \"Users\" == " << p1 << '\n';
    p1 /= "batman"; // fügt fs::path::preferred_separator ein, '\' unter Windows
    std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n';
}

Mögliche Ausgabe:

"C:" / "Users" == "C:Users"
"C:" / "Users" / "batman" == "C:Users\batman"

Siehe auch

verkettet zwei Pfade ohne Einführung eines Verzeichnistrennzeichens
(öffentliche Elementfunktion)
verkettet zwei Pfade mit einem Verzeichnistrennzeichen
(Funktion)