std::experimental::filesystem::path
来自cppreference.com
< cpp | experimental | fs
在标头 <experimental/filesystem> 定义
|
||
class path; |
(文件系统 TS) | |
path
类型的对象表示文件系统上的路径。只有路径的语法外观得到处理:路径名可能表示不存在的路径,或甚至不允许存在于当前文件系统或操作系统的路径。
路径名拥有下列语法:
- 根名(可选):标识具有多根的文件系统(如 "C:" 或 "//myserver")的根。POSIX 文件系统具有单根。
- 根目录(可选):目录分隔符,若存在,则标记此路径为绝对路径。若缺失(且除了根名外的首元素是文件名),则路径为相对路径且要求另一路径作为解析此文件名的起始位置。
- 零或多个下列各项:
- 文件名:并非目录分隔符或偏好目录分隔符的字符的序列(操作系统或文件系统可能施加额外限制)。此名称可能标识一个文件、硬链接、符号链接或目录。可辨别两种特殊的 文件名:
- 点:由单个点字符 . 构成的文件名是指代当前目录的目录名
- 点点:由两个点字符 .. 构成的文件名是指代父目录的目录名。
- 目录分隔符:正斜杠字符 / 或作为
path::preferred_separator
提供的另一种字符。若重复此字符,则它被处理成单个目录分隔符:/usr///////lib 与 /usr/lib 相同。
路径可由 begin() 与 end() 函数返回的迭代器逐元素遍历,这会以通用格式查看路径,并在根名、根目录及后继文件名元素上迭代(跳过目录分隔符,除了标识根目录者)。若路径中的最后元素是目录分隔符,则最后的迭代器将解引用为文件名 点。
调用 path
的任何非 const 成员函数会令所有引用该对象元素的迭代器失效。
若 OS 使用异于上述可移植通用语法的原生语法,则所有库函数均接受两种格式的路径名。
路径可隐式转换自及转换成 std::basic_string,这使得在其他文件 API 上使用它们变得可行,例如作为到 std::ifstream::open 的实参。
成员类型
类型 | 定义 |
value_type
|
文件系统原生编码所用的字符类型:POSIX 上为 char,Windows 上为 wchar_t |
string_type
|
std::basic_string<value_type> |
const_iterator
|
value_type 为 path 的常量老式双向迭代器 (LegacyBidirectionalIterator)
|
iterator
|
const_iterator 的别名
|
成员常量
constexpr value_type preferred_separator [静态] |
在可移植的 / 之外可用的另一种目录分隔符。Windows 上它是反斜杠字符 \。POSIX 上它是与可移植分隔符相同的斜杠 / (公开静态成员常量) |
成员函数
构造 path (公开成员函数) | |
销毁 path 对象 (公开成员函数) | |
赋值另一个路径 (公开成员函数) | |
赋值内容 (公开成员函数) | |
接合 | |
向路径追加元素 (公开成员函数) | |
接合两个路径而不引入目录分隔符 (公开成员函数) | |
修改器 | |
擦除内容 (公开成员函数) | |
将目录分隔符转换为首选目录分隔符 (公开成员函数) | |
移除文件名路径组分 (公开成员函数) | |
以另一路径替换最后一个路径组分 (公开成员函数) | |
替换扩展名 (公开成员函数) | |
交换两个路径 (公开成员函数) | |
格式观察器 | |
返回路径的原生版本 (公开成员函数) | |
返回转换为字符串的原生路径名格式的路径 (公开成员函数) | |
返回转换为字符串的通用路径名格式的路径 (公开成员函数) | |
比较 | |
按字典序比较两个路径的词法表示 (公开成员函数) | |
分解 | |
返回路径的根名称,如果存在 (公开成员函数) | |
返回路径的根目录,如果存在 (公开成员函数) | |
返回路径的根路径,如果存在 (公开成员函数) | |
返回相对于根路径的路径 (公开成员函数) | |
返回父路径的路径 (公开成员函数) | |
返回文件名路径组分 (公开成员函数) | |
返回主干路径组分 (公开成员函数) | |
返回文件扩展名路径组分 (公开成员函数) | |
查询 | |
检查路径是否为空 (公开成员函数) | |
检查对应路径元素是否非空 (公开成员函数) | |
检查 root_path() 是否唯一标定文件系统路径 (公开成员函数) | |
迭代器 | |
将路径作为元素序列访问的迭代器 (公开成员函数) |
非成员函数
交换两个路径 (函数) | |
按字典序比较两个路径 (函数) | |
以一个目录分隔符连接两个路径 (函数) | |
实施 path 的流输入/输出 (函数) | |
从 UTF-8 编码的源创建 path (函数) |