std::filesystem::path:: extension
| Member types | ||||||||||||||||||||||||||
| Member constants | ||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Path decomposition | ||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||
|
path extension
(
)
const
;
|
(C++17 起) | |
返回 * this 通用格式视图的文件名部分的扩展名。
如果通用格式路径的
filename()
组件包含句点(
.
),且不是特殊文件系统元素
dot
或
dot-dot
,则
扩展名
是从最右侧句点开始(包括该句点)直到路径名结尾的子字符串。
如果文件名中的第一个字符是句点,该句点将被忽略(例如像 ".profile" 这样的文件名不会被视作扩展名)。
若路径名为
.
或
..
,或当
filename()
不包含
'.'
字符时,则返回空路径。
对于向扩展名追加额外元素(如备用数据流或分区数据集名称)的文件系统,实现可能定义附加行为。
目录 |
参数
(无)
返回值
当前路径名的扩展名,若无扩展名则返回空路径。
异常
可能抛出实现定义的异常。
注释
此函数返回的扩展名包含一个句点,以便能够区分以句点结尾的文件(函数返回 "." )与没有扩展名的文件(函数返回 "" )。
在非POSIX系统上,可能出现 p. stem ( ) + p. extension ( ) ! = p. filename ( ) 的情况,即使通用格式版本是相同的。
示例
#include <filesystem> #include <iostream> namespace fs = std::filesystem; int main() { std::cout << fs::path("/foo/bar.txt").extension() << '\n' << fs::path("/foo/bar.").extension() << '\n' << fs::path("/foo/bar").extension() << '\n' << fs::path("/foo/bar.txt/bar.cc").extension() << '\n' << fs::path("/foo/bar.txt/bar.").extension() << '\n' << fs::path("/foo/bar.txt/bar").extension() << '\n' << fs::path("/foo/.").extension() << '\n' << fs::path("/foo/..").extension() << '\n' << fs::path("/foo/.hidden").extension() << '\n' << fs::path("/foo/..bar").extension() << '\n'; }
输出:
".txt" "." "" ".cc" "." "" "" "" "" ".bar"
参见
|
返回文件名路径组件
(公开成员函数) |
|
|
返回主干路径组件(不含最终扩展名的文件名)
(公开成员函数) |
|
|
替换扩展名
(公开成员函数) |
|
|
检查对应的路径元素是否非空
(公开成员函数) |