Namespaces
Variants

std::filesystem::path:: stem

From de.cppreference.net
path stem ( ) const ;
(seit C++17)

Gibt den Dateinamen zurück, der durch den Pfad im generischen Format identifiziert wird, ohne seine Erweiterung.

Gibt den Teilstring vom Anfang von filename() bis zu, aber ausschließlich, dem letzten Punktzeichen ( . ) zurück, mit folgenden Ausnahmen:

  • Wenn das erste Zeichen im Dateinamen ein Punkt ist, wird dieser Punkt ignoriert (ein Dateiname wie ".profile" wird nicht als Erweiterung behandelt).
  • Wenn der Dateiname einer der speziellen Dateisystemkomponenten dot oder dot-dot ist, oder wenn er keine Punkte enthält, gibt die Funktion den gesamten filename() zurück.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Der Stamm des durch den Pfad identifizierten Dateinamens (d.h. der Dateiname ohne die Endung).

Ausnahmen

Kann implementierungsdefinierte Ausnahmen auslösen.

Beispiel

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    for (const fs::path p : {"/foo/bar.txt", "/foo/.bar", "foo.bar.baz.tar"})
        std::cout << "path: " << p << ", stem: " << p.stem() << '\n';
    std::cout << '\n';
    for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem())
        std::cout << "path: " << p << ", extension: " << p.extension() << '\n';
}

Ausgabe:

path: "/foo/bar.txt", stem: "bar"
path: "/foo/.bar", stem: ".bar"
path: "foo.bar.baz.tar", stem: "foo.bar.baz"
path: "foo.bar.baz.tar", extension: ".tar"
path: "foo.bar.baz", extension: ".baz"
path: "foo.bar", extension: ".bar"

Siehe auch

gibt die Dateinamen-Pfadkomponente zurück
(öffentliche Elementfunktion)
gibt die Dateierweiterungs-Pfadkomponente zurück
(öffentliche Elementfunktion)