std::filesystem::path::stem

来自cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
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 << "路径: " << p << ", 主干: " << p.stem() << '\n';
 
    std::cout << '\n';
 
    for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem())
        std::cout << "路径: " << p << ", 扩展名: " << p.extension() << '\n';
}

输出:

路径: "/foo/bar.txt", 主干: "bar"
路径: "/foo/.bar", 主干: ".bar"
路径: "foo.bar.baz.tar", 主干: "foo.bar.baz"
 
路径: "foo.bar.baz.tar", 扩展名: ".tar"
路径: "foo.bar.baz", 扩展名: ".baz"
路径: "foo.bar", 扩展名: ".bar"

参阅

返回文件名路径组分
(公开成员函数)
返回文件扩展名路径组分
(公开成员函数)