std::filesystem::path::extension
| pfad-erweiterung() const; |
(seit C++17) | |
Gibt die Erweiterung der Dateinamenskomponente der generischen Ansicht von *this zurück.
Wenn die filename()-Komponente des generisch formatierten Pfads einen Punkt (.) enthält und nicht eines 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 das erste Zeichen im Dateinamen ein Punkt ist, wird dieser Punkt ignoriert (ein Dateiname wie ".profile" wird nicht als Erweiterung behandelt).
Wenn der Pfadname entweder . oder .. ist oder wenn filename() nicht das Zeichen '.' 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 |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
Die Erweiterung des aktuellen Pfadnamens oder ein leerer Pfad, wenn keine Erweiterung vorhanden ist.
[edit] Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
[bearbeiten] Anmerkungen
Die von dieser Funktion zurückgegebene Erweiterung enthält einen Punkt, um zwischen einer Datei, die mit einem Punkt endet (Funktion gibt "." zurück), und einer Datei ohne Erweiterung (Funktion gibt "" zurück) unterscheiden zu können.
Auf einem Nicht-POSIX-System ist es möglich, dass p.stem() + p.extension() != p.filename(), obwohl die generischen Versionen gleich sind.
[bearbeiten] Beispiel
#include <filesystem> #include <iostream> namespace fs = std::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' << fs::path("/foo/..bar").extension() << '\n'; }
Ausgabe
".txt" "." "" ".cc" "." "" "" "" "" ".bar"
[bearbeiten] Siehe auch
| gibt die Dateinamen-Pfadkomponente zurück (public member function) | |
| gibt die Stem-Pfadkomponente zurück (Dateiname ohne die finale Endung) (public member function) | |
| ersetzt die Dateiendung (public member function) | |
| prüft, ob das entsprechende Pfadelement nicht leer ist (öffentliche Memberfunktion) |