Namespaces
Variants

Filesystem library

From cppreference.net

文件系统库(ISO/IEC TS 18822:2015)提供了对文件系统及其组件(如路径、常规文件和目录)执行操作的功能。

此库是一个可选的 技术规范 ,若实现无法访问分层文件系统,或未提供必要能力时可能不可用。某些功能在底层文件系统不支持时可能无法使用(例如 FAT 文件系统没有硬链接、软链接及其他功能)。

若对此库中函数的调用引入了 文件系统竞争 (即多个线程、进程或计算机交错访问和修改文件系统中的同一对象),则该行为是 未定义 的。

该库直接基于 boost.filesystem ,相比这项实验性技术规范,目前可在更多编译器和平台上使用。

目录

库范围定义

  • file :一种文件系统对象,用于存储数据,可进行写入、读取或同时支持两种操作。文件具有名称和属性,其中文件类型是属性之一:
  • directory :作为目录项容器的文件,这些目录项用于标识其他文件(其中一些可能是其他嵌套目录)。在讨论特定文件时,其作为条目出现的目录称为其 父目录 。父目录可通过相对路径名 ".." 表示。
  • hard link :将名称与现有文件关联的目录项。若支持多重硬链接,文件将在其最后一个硬链接被删除后移除。
  • symbolic link :将名称与路径关联的目录项,该路径可能存在也可能不存在。
  • regular file :不属于其他文件类型的文件。
  • 文件名 :用于命名文件的字符串。允许使用的字符、大小写敏感性、最大长度以及禁止使用的名称均由实现定义。名称 . (点)和 .. (点点)在库级别具有特殊含义。
  • 路径 :用于标识文件的元素序列。它以可选的 根名称 (例如 "C:" "//server" )开头,后接可选的 根目录 (例如 Unix 系统中的 "/" ),再跟随零个或多个文件名序列(除最后一个外,其余必须是目录或目录链接)。路径的字符串表示形式(即 路径名 )的本机格式(例如使用哪些字符作为分隔符)和字符编码均由实现定义,此库提供了路径的可移植表示形式。
  • 绝对路径 : 明确标识文件位置的路径。
  • 规范路径 : 不包含符号链接、 "." ".." 元素的绝对路径。
  • 相对路径 : 相对于文件系统中某个位置来标识文件的路径。特殊路径名称 . (点号,"当前目录")和 .. (双点号,"父目录")属于相对路径。

表示路径
(类)
文件系统错误时抛出的异常
(类)
目录项
(类)
目录内容的迭代器
(类)
目录及其子目录内容的迭代器
(类)
表示文件类型和权限
(类)
文件系统可用空间信息
(类)
文件类型
(枚举)
标识文件系统权限
(枚举)
指定复制操作语义
(枚举)
目录内容遍历选项
(枚举)
表示文件时间值
(类型定义)

非成员函数

组合绝对路径
将路径转换为绝对路径,复制操作系统特定行为
(函数)
组合规范路径
(函数)
复制文件或目录
(函数)
复制文件内容
(函数)
复制符号链接
(函数)
创建新目录
(函数)
创建硬链接
(函数)
创建符号链接
(函数)
返回当前工作目录
(函数)
检查路径是否指向存在的文件系统对象
(函数)
检查两个路径是否指向同一文件系统对象
(函数)
返回文件大小
(函数)
返回指向特定文件的硬链接数量
(函数)
获取或设置最后数据修改时间
(函数)
修改文件访问权限
(函数)
获取符号链接的目标
(函数)
删除文件或空目录
递归删除文件或目录及其所有内容
(函数)
移动或重命名文件或目录
(函数)
通过截断或零填充更改常规文件的大小
(函数)
确定文件系统上的可用空闲空间
(函数)
确定文件属性
确定文件属性,检查符号链接目标
(函数)
返回适用于临时文件的目录
(函数)
文件类型
检查给定路径是否指向块设备
(函数)
检查给定路径是否指向字符设备
(函数) <span class="editsection n

另请参阅

C++ 文档 关于 文件系统库 (C++17)