命名空间
变体
操作

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):不是目录分隔符或首选目录分隔符的字符序列(操作系统或文件系统可能会施加额外的限制)。此名称可以标识文件、硬链接、符号链接或目录。识别两个特殊的文件名
  • 点(dot):由单个点字符 . 组成的文件名,是一个指向当前目录的目录名。
  • 点-点(dot-dot):由两个点字符 .. 组成的文件名,是一个指向父目录的目录名。
  • 目录分隔符(directory-separator):正斜杠字符 / 或作为 path::preferred_separator 提供的备用字符。如果此字符重复,则将其视为单个目录分隔符:/usr///////lib/usr/lib 相同。

路径可以通过 begin()end() 函数返回的迭代器进行逐元素遍历,该迭代器会遍历根名、根目录以及后续的文件名元素(除了标识根目录的那个分隔符外,其他目录分隔符都会被跳过)。如果路径的最后一个元素是目录分隔符,那么最后一个迭代器将解引用为一个文件名。

调用 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 一个常量双向迭代器,其 value_typepath
iterator const_iterator 的别名

[编辑] 成员常量

constexpr value_type preferred_separator
[静态]
备用目录分隔符,可与可移植的 / 一起使用。在 Windows 上,这是反斜杠字符 \。在 POSIX 上,这与可移植分隔符相同,都是正斜杠 /
(public static 成员常量)

[编辑] 成员函数

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

[编辑] 非成员函数

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