Namespaces
Variants

std::filesystem::path:: stem

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

Retourne le nom de fichier identifié par le chemin au format générique dépourvu de son extension.

Retourne la sous-chaîne depuis le début de filename() jusqu'à et sans inclure le dernier caractère point ( . ), avec les exceptions suivantes :

  • Si le premier caractère du nom de fichier est un point, ce point est ignoré (un nom de fichier comme ".profile" n'est pas traité comme une extension).
  • Si le nom de fichier est l'un des composants spéciaux du système de fichiers dot ou dot-dot , ou s'il ne contient aucun point, la fonction retourne l'intégralité du filename() .

Table des matières

Paramètres

(aucun)

Valeur de retour

La racine du nom de fichier identifié par le chemin (c'est-à-dire le nom de fichier sans l'extension finale).

Exceptions

Peut lever des exceptions définies par l'implémentation.

Exemple

#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';
}

Sortie :

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"

Voir aussi

renvoie le composant de chemin du nom de fichier
(fonction membre publique)
renvoie le composant de chemin de l'extension de fichier
(fonction membre publique)