文件系统
文件系统库提供对文件系统及其组件(例如路径、常规文件和目录)执行操作的工具。
如果分层文件系统无法供实现访问,或者它不提供必要的功能,则文件系统库功能可能不可用。 如果底层文件系统不支持某些功能,则它们可能不可用(例如,FAT 文件系统缺少符号链接并禁止多个硬链接)。在这些情况下,必须报告错误。
文件系统实现与turbo/files中。
定义
- 文件:保存数据的文件系统对象,可以写入、读取或两者兼有。文件具有名称、属性,其中之一是文件类型:
- 目录:充当目录条目容器的文件,用于标识其他文件(其中一些文件可能是其他嵌套目录)。在讨论特定文件时,它作为条目出现的目录是其父目录。父目录可以用相对路径名“..”表示。
- 常规文件:将名称与现有文件(即硬链接)关联的目录条目。如果支持多个硬链接,则在删除最后一个硬链接后删除该文件。
- 符号链接:将名称与路径关联的目录条目,路径可能存在也可能不存在。
- 其他特殊文件类型:块、字符、fifo、套接字。
- 文件名:用于命名文件的字符串。允许的字符、区分大小写、最大长度和不允许的名称由实现定义。名称
.(点)和..(点-点)在库级别具有特殊含义。 - 路径:用于标识文件的元素序列。它以可选的根名称(例如 Windows 上的“C:”或
//server)开头,后跟可选的根目录(例如 Unix 上的/),后跟零个或 多个文件名序列(除最后一个之外,其余文件名都必须是目录或指向目录的链接)。路径(路径名)的字符串表示的本机格式(例如,哪些字符用作分隔符)和字符编码 是实现定义的,此库提供可移植的路径表示。- 绝对路径:明确标识文件位置的路径。
- 规范路径:不包含符号链接、
.或..元素的绝对路径。 - 相对路径:标识文件相对于文件系统上某个位置的位置的路径。特殊路径名
.(点,当前目录) 和..(点-点,父目录) 是相对路径。
类
turbo::FilePath
路径类型的对象表示文件系统上的路径。仅处理路径的语法方面:路径名可能表示不存在的路径, 甚至是当前文件系统或操作系统上不允许存在的路径。
路径名具有以下语法: