std::filesystem::path::stem

来自cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
path stem() const;
(C++17 起)

返回通用格式路径所标识的文件名,剥去其扩展名。

返回从 filename() 的开始到不含最后一个句号( . )字符的子串,有下列例外:

若文件名的首字符是句号,则忽略该句号(类似 ".profile" 的文件名不被当做扩展名)

若文件名是特殊文件系统组分 dotdot-dot ,或若它无句号,则函数返回整个 filename()

参数

(无)

返回值

路径所标识的文件名的主干。

异常

可能会抛出由实现定义的异常。

示例

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
 
int main()
{
    std::cout << fs::path("/foo/bar.txt").stem() << '\n'
              << fs::path("/foo/.bar").stem() << '\n';
 
    for (fs::path p = "foo.bar.baz.tar"; !p.extension().empty(); p = p.stem())
        std::cout << p.extension() << '\n';
}

输出:

"bar"
".bar"
".tar"
".baz"
".bar"

参阅

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