命名空间
变体
操作

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. 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 的任何非常量成员函数都会使引用该对象元素的所有迭代器失效。

如果操作系统使用的本地语法不同于上面描述的可移植通用语法,则所有库函数都接受这两种格式的路径名。

路径可以隐式转换为和从 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_typepath 的常量 LegacyBidirectionalIterator
iterator const_iterator 的别名

[edit] 成员常量

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

[编辑] 成员函数

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

[编辑] 非成员函数

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