std::experimental::filesystem::path

来自cppreference.com
< cpp‎ | experimental‎ | fs
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性非 TS 功能特性
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
在标头 <experimental/filesystem> 定义
class path;
(文件系统 TS)

path 类型的对象表示文件系统上的路径。只有路径的语法外观得到处理:路径名可能表示不存在的路径,或甚至不允许存在于当前文件系统或操作系统的路径。

路径名拥有下列语法:

  1. 根名(可选):标识具有多根的文件系统(如 "C:""//myserver")的根。POSIX 文件系统具有单根。
  2. 根目录(可选):目录分隔符,若存在,则标记此路径为绝对路径。若缺失(且除了根名外的首元素是文件名),则路径为相对路径且要求另一路径作为解析此文件名的起始位置。
  3. 零或多个下列各项:
  • 文件名:并非目录分隔符或偏好目录分隔符的字符的序列(操作系统或文件系统可能施加额外限制)。此名称可能标识一个文件、硬链接、符号链接或目录。可辨别两种特殊的 文件名
  • :由单个点字符 . 构成的文件名是指代当前目录的目录名
  • 点点:由两个点字符 .. 构成的文件名是指代父目录的目录名。
  • 目录分隔符:正斜杠字符 / 或作为 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_typepath 的常量老式双向迭代器 (LegacyBidirectionalIterator)
iterator const_iterator 的别名

成员常量

constexpr value_type preferred_separator
[静态]
在可移植的 / 之外可用的另一种目录分隔符。Windows 上它是反斜杠字符 \。POSIX 上它是与可移植分隔符相同的斜杠 /
(公开静态成员常量)

成员函数

构造 path
(公开成员函数)
销毁 path 对象
(公开成员函数)
赋值另一个路径
(公开成员函数)
赋值内容
(公开成员函数)
接合
向路径追加元素
(公开成员函数)
接合两个路径而不引入目录分隔符
(公开成员函数)
修改器
擦除内容
(公开成员函数)
将目录分隔符转换为首选目录分隔符
(公开成员函数)
移除文件名路径组分
(公开成员函数)
以另一路径替换最后一个路径组分
(公开成员函数)
替换扩展名
(公开成员函数)
交换两个路径
(公开成员函数)
格式观察器
返回路径的原生版本
(公开成员函数)
返回转换为字符串的原生路径名格式的路径
(公开成员函数)
返回转换为字符串的通用路径名格式的路径
(公开成员函数)
比较
按字典序比较两个路径的词法表示
(公开成员函数)
分解
返回路径的根名称,如果存在
(公开成员函数)
返回路径的根目录,如果存在
(公开成员函数)
返回路径的根路径,如果存在
(公开成员函数)
返回相对于根路径的路径
(公开成员函数)
返回父路径的路径
(公开成员函数)
返回文件名路径组分
(公开成员函数)
返回主干路径组分
(公开成员函数)
返回文件扩展名路径组分
(公开成员函数)
查询
检查路径是否为空
(公开成员函数)
检查对应路径元素是否非空
(公开成员函数)
检查 root_path() 是否唯一标定文件系统路径
(公开成员函数)
迭代器
将路径作为元素序列访问的迭代器
(公开成员函数)

非成员函数

交换两个路径
(函数)
按字典序比较两个路径
(函数)
以一个目录分隔符连接两个路径
(函数)
实施 path 的流输入/输出
(函数)
从 UTF-8 编码的源创建 path
(函数)