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"
参阅
返回文件名路径组分 (公开成员函数) | |
返回文件扩展名路径组分 (公开成员函数) |