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