std::filesystem::path::stem
De cppreference.com
<tbody>
</tbody>
path stem() const; |
(desde C++17) | |
Devuelve el nombre de archivo identificado por el formato genérico de ruta de acceso despojado de su extensión.
Devuelve la subcadena desde el principio de filename() hasta y 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 similar ".perfil" no se trata como una extensión).
- Si el nombre de archivo es uno de los componentes especiales del sistema de archivos punto o punto-punto, o si no tiene puntos, la función devuelve filename() en su totalidad.
Parámetros
(Ninguno)
Valor de retorno
El pie del nombre de archivo identificado por la ruta de acceso (es decir, el nombre de archivo sin la extensión final).
Excepciones
Puede lanzar excepciones definidas por la implementación.
Ejemplo
Ejecuta este código
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
for (const fs::path p : {"/foo/bar.txt", "/foo/.bar", "foo.bar.baz.tar"})
std::cout << "ruta de acceso: " << p << ", stem: " << p.stem() << '\n';
std::cout << '\n';
for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem())
std::cout << "ruta de acceso: " << p << ", extension: " << p.extension() << '\n';
}
Salida:
ruta de acceso: "/foo/bar.txt", stem: "bar"
ruta de acceso: "/foo/.bar", stem: ".bar"
ruta de acceso: "foo.bar.baz.tar", stem: "foo.bar.baz"
ruta de acceso: "foo.bar.baz.tar", extension: ".tar"
ruta de acceso: "foo.bar.baz", extension: ".baz"
ruta de acceso: "foo.bar", extension: ".bar"
Véase también
| Devuelve el componente de nombre de archivo de la ruta de acceso. (función miembro pública) | |
| Devuelve el componente de extensión de archivo de la ruta de acceso. (función miembro pública) |