购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

7.2 处理文件路径

大多数fs操作接受的文件路径可以指定为字符串、Buffer或使用file:协议的URL对象。

7.2.1 字符串形式的路径

字符串形式的路径被解析为标识绝对或相对文件名的UTF-8字符序列。相对路径将相对于process.cwd()指定的当前工作目录进行解析。

在POSIX上使用绝对路径的示例如下。

在POSIX上使用相对路径(相对于process.cwd())的示例如下。

7.2.2 Buffer形式的路径

使用Buffer指定的路径主要用于将文件路径视为不透明字节序列的某些POSIX操作系统。在这样的系统上,单个文件路径可以包含使用多种字符编码的子序列。与字符串路径一样,Buffer路径可以是相对路径或绝对路径。

在POSIX上使用绝对路径的示例如下。

在Windows上,Node.js遵循每个驱动器工作目录的概念。当使用没有反斜杠的驱动器路径时,可以观察到此行为。例如,fs.readdirSync(c:\\)可能会返回与fs.readdirSync(c:)不同的结果。

7.2.3 URL对象的路径

对于大多数fs模块的函数,path或filename参数可以传入遵循WHATWG规范的URL对象 。Node.js仅支持使用file:协议的URL对象。以下是使用URL对象的示例。

注意,file:的URL始终是绝对路径。

使用WHATWG规范的URL对象可能会采用特定于平台的行为。如在Windows上,带有主机名的URL转换为UNC路径,而带有驱动器号的URL转换为本地绝对路径。没有主机名和驱动器号的URL将导致抛出错误。观察下面的示例。

带有驱动器号的URL必须使用作为驱动器号后面的分隔符,使用其他分隔符将导致抛出错误。

在其他平台上,不支持带有主机名的URL,使用时将导致抛出错误。

包含编码后的斜杠字符(%2F)的file:URL在所有平台上都将导致抛出错误。

在Windows上,包含编码后的反斜杠字符(%5C)的URL将导致抛出错误。 f94z4l1yfmac/nCD9VT/BTqWf0q2bkqU7j6bBnw7BFfwtHAZxxrc5tJ6K7oBosaD

点击中间区域
呼出菜单
上一章
目录
下一章
×