• Node.js Video Tutorials

Node.js - path.dirname() 方法



Node.js 的 path.dirname() 方法是 path 模块的一个辅助方法,用于获取指定路径的父目录。当您需要确定应用程序或脚本正在从哪个文件夹运行,或者想要找出某个文件在文件系统中的位置时,此方法非常有用。

而在基于 LINUX 的系统上,我们可以使用 dirname 命令获取路径的目录名称部分。此方法会忽略尾随的目录分隔符。

语法

以下是 path 模块中 Node.js path.dirname() 方法的语法:

path.dirname( path )

参数

  • path - 此参数保存将用于提取该特定文件目录名称的文件路径。如果 path 不是字符串,则会抛出 TypeError。

返回值

此方法返回一个字符串,该字符串指定指定文件路径的目录名称。这有助于解析路径以确定文件相对于另一个文件或文件夹的位置。

示例

如果我们将 path 参数传递给该方法,它将返回指定 path 的目录名称部分。

在以下示例中,我们尝试使用 os 模块的 Node.js path.dirname() 方法获取指定文件 path (Nodefile.js) 的目录名称。

const path = require('path');

const path1 = path.dirname("C:/Users/Lenovo/Desktop/JavaScript/Nodefile.js");
console.log("The Directory name of the file path (Nodefile.js) is: " + path1);

输出

执行上述程序后,path.dirname() 返回给定文件路径的目录名称部分。

The Directory name of the file path (Nodefile.js) is: C:/Users/Lenovo/Desktop/JavaScript

示例

如果我们将不是 string 类型的值传递给 path 参数,则该方法将抛出 TypeError

在以下示例中,我们将 integer 而不是 string 传递给该方法的 path 参数。

const path = require('path');

const path1 = path.dirname(6576543);
console.log("The Directory name of the path (Nodefile.js) is: " + path1);

TypeError

如果我们编译并运行上述程序,则 path.dirname() 方法会抛出 TypeError,因为 path 参数不是 string 值。

For Output Code pre classpath.js:39
   throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
   ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type number
   at assertPath (path.js:39:11)
   at Object.dirname (path.js:1270:5)
   at Object.<anonymous> (/home/cg/root/63a028ab0650d/main.js:3:20)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)

示例

以下是获取指定文件路径的目录名称部分的另一种方法。

const path = require('path');

console.log("The file path of (Nodefile.js): " + __filename);
const path1 = path.dirname(__filename);
console.log("The Directory name portion of the file is: " + path1);

输出

如果我们在在线编译器中执行代码,它将根据 POSIX 操作系统显示结果。

以下是上述程序的输出:

The file path of (Nodefile.js): /home/cg/root/63a028ab0650d/main.js
The Directory name portion of the file is: /home/cg/root/63a028ab0650d

当我们在 WINDOWS 操作系统上执行上述程序时,“__filename” 将获取当前文件路径,并且 path.dirname() 方法将返回当前文件路径的目录名称部分。

The file path of (Nodefile.js): C:\Users\Lenovo\Desktop\JavaScript\nodefile.js
The Directory name portion of the file is: C:\Users\Lenovo\Desktop\JavaScript
nodejs_path_module.htm
广告