Spec-Zone.ru › C++

std::filesystem::path::stem

path stem() const;
(начиная с C++17)

Возвращает имя файла, заданное путём в универсальном формате, без расширения.

Возвращает подстроку от начала filename() до последнего символа точки (.), не включая его, со следующими исключениями:

  • Если первый символ имени файла — точка, эта точка игнорируется (имя файла, например «.profile», не считается расширением).
  • Если имя файла является одним из специальных компонентов файловой системы точка или две точки либо не содержит точек, функция возвращает весь filename().

Параметры

(нет)

Возвращаемое значение

Основа имени файла, заданного путём (то есть имя файла без последнего расширения).

Исключения

Может выбрасывать исключения, определяемые реализацией.

Пример

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

Вывод:

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"

См. также

filename
возвращает компонент пути с именем файла
(открытая функция-член)
extension
возвращает компонент пути с расширением файла
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/filesystem/path/stem

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API