Namensräume
Varianten
Aktionen

std::experimental::filesystem::path::extension

Von cppreference.com
< cpp‎ | experimental‎ | fs‎ | path
 
 
 
 
 
path extension() const;
(Dateisystem-TS)

Gibt die Erweiterung der Dateinamenskomponente des Pfades *this zurück.

Wenn die filename() Komponente des Pfades einen Punkt (.) enthält und keiner der speziellen Dateisystemelemente dot oder dot-dot ist, dann ist die Erweiterung der Teilstring, der am rechtesten Punkt beginnt (einschließlich des Punktes) und bis zum Ende des Pfadnamens reicht.

Wenn der Pfadname entweder . oder .. ist oder wenn filename() das Zeichen . nicht enthält, dann wird ein leerer Pfad zurückgegeben.

Zusätzliches Verhalten kann von den Implementierungen für Dateisysteme definiert werden, die zusätzliche Elemente (wie alternative Datenströme oder partitionierte Dataset-Namen) an Erweiterungen anhängen.

Inhalt

[edit] Parameter

(keine)

[edit] Rückgabewert

Die Erweiterung des aktuellen Pfadnamens oder ein leerer Pfad, wenn keine Erweiterung vorhanden ist.

[edit] Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

[edit] Anmerkungen

Die von dieser Funktion zurückgegebene Erweiterung enthält einen Punkt, um Dateien, die mit einem Punkt enden (die Funktion gibt "." zurück), von Dateien ohne Erweiterung (die Funktion gibt "" zurück) unterscheiden zu können.

Für jeden Pfad p gilt: p.stem()+p.extension() == p.filename().

[edit] Beispiel

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
 
int main()
{
    std::cout << fs::path("/foo/bar.txt").extension() << '\n'
              << fs::path("/foo/bar.").extension() << '\n'
              << fs::path("/foo/bar").extension() << '\n'
              << fs::path("/foo/bar.txt/bar.cc").extension() << '\n'
              << fs::path("/foo/bar.txt/bar.").extension() << '\n'
              << fs::path("/foo/bar.txt/bar").extension() << '\n'
              << fs::path("/foo/.").extension() << '\n'
              << fs::path("/foo/..").extension() << '\n'
              << fs::path("/foo/.hidden").extension() << '\n';
}

Ausgabe

".txt"
"."
""
".cc"
"."
""
""
""
".hidden"

[edit] Siehe auch

gibt die Dateinamen-Pfadkomponente zurück
(public member function) [edit]
gibt die Stammkomponente des Pfads zurück
(public member function) [edit]
ersetzt die Dateiendung
(public member function) [edit]
prüft, ob das entsprechende Pfadelement nicht leer ist
(öffentliche Memberfunktion)