C++ 参考手册

位置:首页 > C++ 参考手册 >实验性 C++ 特性 > 文件系统库

文件系统库 (Filesystem library) , ISO/IEC TS 18822:2015 ,提供在文件系统与其组件,例如路径、常规文件与目录上进行操作的设施。

此库是可选的技术规范,而且若层级文件系统不能为实现所访问,或若它不提供必要的兼容性,则此库可能不可用。若底层文件系统不支持(例如 FAT 文件系统无硬链接、软连接和其他特性),则某些特性可能不可用。

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

此库直接基于 boost.filesystem ,当前可用它的编译器和平台多于此实验性技术规范。

库范畴定义

  • 文件:持有数据的文件系统对象,能被写入或读取,或二者皆可。文件拥有名称和属性,属性之一是文件类型:
  • 目录:表现为目录条目的容器的文件,目录条目标识其他文件(其中一些可以是另外的嵌套的目录)。讨论到具体文件时,入口出现于其中的目录是其亲目录。亲目录能以相对路径名 ".." 表示。
  • 硬链接:关联一个名词到一个既存文件的目录条目。若支持多重硬链接,则文件在最后一个到它的硬链接被移除后才被移除。
  • 符号链接:关联一个名词到一个路径的目录条目,路径可以存在亦可不存在。
  • 常规文件:不是其他文件类型的文件。
  • 文件名:命名一个文件的字符串。容许字符、大小写区别、最大长度以及被禁止名称是实现定义的。名称 "." (点)与 ".." (双点)在库层次拥有特殊含义。
  • 路径:标识一个文件的元素序列。它以可选的 root-name (例如 Windows 上的 "C:""//server" )开始,后随可选的 root-directory (例如 Unix 上的 "/" ),后随零或更多个文件名(除了最后一个都必须是目录或到目录的链接)的序列。表示路径的字符串(路径名)的原生格式(如哪些字符被用作分隔符)与字符编码是实现定义的,库提供路径的可移植表示。
  • 绝对路径:无歧义地标识一个文件位置的路径。
  • 规范路径:不包含符号链接、 "."".." 元素的绝对路径。
  • 相对路径:标识相对于文件系统中某位置的文件位置的路径。特殊路径名 "." (点,“当前目录”)和 ".." (双点、“亲目录”)是相对路径。

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

非成员函数

组成一个绝对路径
转换路径为绝对路径,复现 OS 特定的行为
(函数)
组成一个规范路径
(函数)
复制文件或目录
(函数)
复制文件内容
(函数)
复制一个符号链接
(函数)
创建新目录
(函数)
创建一个硬链接
(函数)
创建一个符号链接
(函数)
返回当前工作目录
(函数)
检查路径是否指代既存的文件系统对象
(函数)
检查两个路径是否指代同一文件系统对象
(函数)
返回文件的大小
(函数)
返回指代特定文件的硬链接数
(函数)
获取或设置最近一次数据修改的时间
(函数)
修改文件访问权限
(函数)
获得符号链接的目标
(函数)
移除一个文件或空目录
移除一个文件或递归地移除一个目录与其全部内容
(函数)
移动或重命名一个文件或目录
(函数)
以截断或填充零更改一个常规文件的大小
(函数)
确定文件系统上的可用空闲空间
(函数)
确定文件属性
确定文件属性,检查符号链接目标
(函数)
返回一个适用于临时文件的目录
(函数)
文件类型
检查给定路径是否指代块设备
(函数)
检查给定路径是否指代字符设备
(函数)
检查给定路径是否指代一个目录
(函数)
检查给定路径是否指代一个空的文件或目录
(函数)
检查给定路径是否指代一个命名管道
(函数)
检查参数是否指代一个其他文件
(函数)
检查参数是否指代一个常规文件
(函数)
检查参数是否指代一个具名 IPC 套接字
(函数)
检查参数是否指代一个符号链接
(函数)
检查文件状态是否已知
(函数)