Namespaces
Variants

std::filesystem::path:: stem

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

Devuelve el nombre de archivo identificado por la ruta en formato genérico sin su extensión.

Retorna la subcadena desde el inicio de filename() hasta pero sin incluir el último carácter de punto ( . ), con las siguientes excepciones:

  • Si el primer carácter en el nombre de archivo es un punto, ese punto se ignora (un nombre de archivo como ".profile" no se trata como una extensión).
  • Si el nombre de archivo es uno de los componentes especiales del sistema de archivos dot o dot-dot , o si no tiene puntos, la función retorna el filename() completo.

Contenidos

Parámetros

(ninguno)

Valor de retorno

El tallo del nombre de archivo identificado por la ruta (es decir, el nombre de archivo sin la extensión final).

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

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

Salida:

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"

Véase también

devuelve el componente de ruta del nombre de archivo
(función miembro pública)
devuelve el componente de ruta de la extensión de archivo
(función miembro pública)