Node.js 文件路径
系统中的每个文件都有一个路径。在 Linux 和 macOS 上,路径可能如下所示:/users/joe/file.txt
,而 Windows 计算机则不同,其结构类似于:C:\users\joe\file.txt
在应用程序中使用路径时需要注意,因为必须考虑到这种差异。
你可以使用 const path = require('node:path');
将此模块包含在文件中,然后就可以开始使用它的方法了。
从路径中获取信息
给定一个路径,你可以使用以下方法从中提取信息:
dirname
:获取文件的父文件夹basename
:获取文件名部分extname
:获取文件扩展名
示例
const = ('node:path');
const = '/users/joe/notes.txt';
.(); // /users/joe
.(); // notes.txt
.(); // .txt
你可以通过为 basename
指定第二个参数来获取不带扩展名的文件名。
path.basename(notes, path.extname(notes)); // notes
处理路径
你可以使用 path.join()
连接路径的两个或多个部分。
const = 'joe';
path.join('/', 'users', , 'notes.txt'); // '/users/joe/notes.txt'
你可以使用 path.resolve()
获取相对路径的绝对路径计算结果。
path.resolve('joe.txt'); // '/Users/joe/joe.txt' if run from my home folder
在这种情况下,Node.js 会简单地将 /joe.txt
附加到当前工作目录。如果你指定了第二个参数文件夹,resolve
将使用第一个作为第二个的基础。
path.resolve('tmp', 'joe.txt'); // '/Users/joe/tmp/joe.txt' if run from my home folder
如果第一个参数以斜杠开头,则表示它是一个绝对路径。
path.resolve('/etc', 'joe.txt'); // '/etc/joe.txt'
path.normalize()
是另一个有用的函数,它会在路径包含相对说明符(如 .
或 ..
)或双斜杠时,尝试计算实际路径。
path.normalize('/users/joe/..//test.txt'); // '/users/test.txt'
resolve
和 normalize
都不会检查路径是否存在。它们只是根据获得的信息计算路径。