std::filesystem::path:: extension
|
path extension
(
)
const
;
|
(seit C++17) | |
Gibt die Erweiterung der Dateinamenkomponente der generisch formatierten Ansicht von * this zurück.
Wenn die
filename()
-Komponente des Pfades im generischen Format einen Punkt (
.
) enthält und nicht eines der speziellen Dateisystemelemente
dot
oder
dot-dot
ist, dann ist die
Erweiterung
die Teilzeichenkette, die beim 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 den
'.'
-Zeichen enthält, wird ein leerer Pfad zurückgegeben.
Zusätzliches Verhalten kann durch die Implementierungen für Dateisysteme definiert werden, die zusätzliche Elemente (wie alternative Datenströme oder partitionierte Datensatznamen) zu Erweiterungen hinzufügen.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
Die Erweiterung des aktuellen Pfadnamens oder ein leerer Pfad, falls keine Erweiterung vorhanden ist.
Ausnahmen
Kann implementierungsdefinierte Ausnahmen auslösen.
Hinweise
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 ( ) selbst wenn die generischen Formatversionen identisch sind.
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"
Siehe auch
|
gibt die Dateinamen-Pfadkomponente zurück
(öffentliche Elementfunktion) |
|
|
gibt die Stamm-Pfadkomponente zurück (Dateiname ohne die Endung)
(öffentliche Elementfunktion) |
|
|
ersetzt die Dateiendung
(öffentliche Elementfunktion) |
|
|
prüft, ob das entsprechende Pfadelement nicht leer ist
(öffentliche Elementfunktion) |