Node.js 文件路径

系统中的每个文件都有一个路径。在 Linux 和 macOS 上,路径可能看起来像:/users/joe/file.txt,而 Windows 计算机则不同,其结构为:C:\users\joe\file.txt

在应用程序中使用路径时,您需要注意这一点,因为必须考虑这种差异。

您可以使用 const path = require('node:path'); 在您的文件中包含此模块,然后开始使用其方法。

从路径中获取信息

给定一个路径,您可以使用这些方法从中提取信息

  • dirname:获取文件的父文件夹
  • basename:获取文件名部分
  • extname:获取文件扩展名

示例

const path = require('node:path');

const notes = '/users/joe/notes.txt';

path.dirname(notes); // /users/joe
path.basename(notes); // notes.txt
path.extname(notes); // .txt

您可以通过向 basename 指定第二个参数来获取没有扩展名的文件名

path.basename(notes, path.extname(notes)); // notes

处理路径

您可以使用 path.join() 连接路径的两个或多个部分

const name = 'joe';
path.join('/', 'users', name, '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 都不会检查路径是否存在。它们只是根据获得的信息计算路径。

阅读时间
2 分钟阅读
贡献
编辑此页面
目录
  1. 从路径中获取信息
  2. 示例
  3. 处理路径