std::experimental::filesystem::path
来自 cppreference.com
< 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
的任何非常量成员函数都会使引用该对象元素的所有迭代器失效。
如果操作系统使用的本地语法不同于上面描述的可移植通用语法,则所有库函数都接受这两种格式的路径名。
路径可以隐式转换为和从 std::basic_strings 转换,这使得可以使用其他文件 API 使用它们,例如作为 std::ifstream::open 的参数。
内容 |
[edit] 成员类型
类型 | 定义 |
value_type
|
文件系统使用的本地编码的字符类型:char 在 POSIX 上,wchar_t 在 Windows 上 |
string_type
|
std::basic_string<value_type> |
const_iterator
|
一个具有 value_type 为 path 的常量 LegacyBidirectionalIterator |
iterator
|
const_iterator 的别名 |
[edit] 成员常量
constexpr value_type preferred_separator [static] |
除了可移植的 / 之外,还可以使用备用目录分隔符。在 Windows 上,它是反斜杠字符 \。在 POSIX 上,它与可移植分隔符相同,即正斜杠 / (公有静态成员常量) |
[编辑] 成员函数
构造一个 path (公有成员函数) | |
销毁一个 path 对象(公有成员函数) | |
赋值另一个路径 (公有成员函数) | |
赋值内容 (公有成员函数) | |
连接 | |
将元素追加到路径 (公有成员函数) | |
连接两个路径,不添加目录分隔符 (公有成员函数) | |
修改器 | |
擦除内容 (公有成员函数) | |
将目录分隔符转换为首选目录分隔符 (公有成员函数) | |
删除文件名路径组件 (公有成员函数) | |
用另一个路径替换最后一个路径组件 (公有成员函数) | |
替换扩展名 (公有成员函数) | |
交换两个路径 (公有成员函数) | |
格式观察器 | |
返回路径的本机版本 (公有成员函数) | |
以本机路径名格式返回路径,并转换为字符串 (公有成员函数) | |
以通用路径名格式返回路径,并转换为字符串 (公有成员函数) | |
比较 | |
按字典顺序比较两个路径的词法表示 (公有成员函数) | |
分解 | |
返回路径的根名称(如果存在) (公有成员函数) | |
返回路径的根目录(如果存在) (公有成员函数) | |
返回路径的根路径(如果存在) (公有成员函数) | |
返回相对于根路径的路径 (公有成员函数) | |
返回父路径的路径 (公有成员函数) | |
返回文件名路径组件 (公有成员函数) | |
返回路径组件的根 (公有成员函数) | |
返回文件扩展名路径组件 (公有成员函数) | |
查询 | |
检查路径是否为空 (公有成员函数) | |
检查相应的路径元素是否为空 (公有成员函数) | |
检查 root_path() 是否唯一标识文件系统位置 (公有成员函数) | |
迭代器 | |
迭代器访问路径,作为元素序列 (公有成员函数) |
[编辑] 非成员函数
交换两个路径 (函数) | |
按字典顺序比较两个路径 (函数) | |
用目录分隔符连接两个路径 (函数) | |
对路径执行流输入和输出 (函数) | |
从 UTF-8 编码的源创建 path (函数) |