命名空间
变体
操作

std::experimental::filesystem::path

来自 cppreference.cn
< 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. root-name(可选):标识具有多个根的文件系统上的根(例如 "C:""//myserver"。POSIX 文件系统具有单个根。
  2. root-directory(可选):目录分隔符,如果存在,则将此路径标记为绝对路径。如果缺少(并且根名称之外的第一个元素是文件名),则该路径是相对路径,并且需要另一个路径作为起始位置才能解析为文件名。
  3. 以下零个或多个
  • 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 具有 pathvalue_type 的常量 遗留双向迭代器
iterator const_iterator 的别名

[编辑] 成员常量

constexpr value_type preferred_separator
[静态]
除了可移植的 / 之外,还可以使用的替代目录分隔符。在 Windows 上,这是反斜杠字符 \。在 POSIX 上,这与可移植分隔符相同的正斜杠 /
(公共静态成员常量)

[编辑] 成员函数

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

[编辑] 非成员函数

交换两个路径
(函数) [编辑]
按字典顺序比较两个路径
(函数) [编辑]
用目录分隔符连接两个路径
(函数) [编辑]
对路径执行流输入和输出
(函数) [编辑]
从 UTF-8 编码的源创建 path
(函数) [编辑]