Node.js - path.format() 方法



Node.js 的 path 模块提供了一些有用的工具,用于处理文件和目录路径。在本文中,我们将通过适当的示例介绍路径模块的 path.format() 方法。

path 模块的Node.js path.format() 方法返回一个字符串,该字符串指定对象的路径。此方法与路径模块的名为 path.parse() 的方法完全相反。

此方法采用输入字符串,并将占位符替换为其他参数中指定的值。占位符可以包含标志、宽度、对齐方式或其他控制值格式设置方式的信息。此外,此方法还支持特殊标记,例如 %d(用于整数)、%f(用于浮点数)和 %j(用于 JSON)。这使得在 Node.js path.applications 中创建格式化字符串变得容易,而无需编写自定义代码。

语法

以下是Node.js path.format()方法的语法 -


 path.format( pathObject )

参数

此方法只接受一个参数,该参数包含有关路径的信息。以下是 pathObject 的属性。

  • dir − 此属性描述路径对象的目录名称。
  • root − 描述路径对象的根。
  • base − 描述路径对象的 base。
  • name − 此属性描述路径对象的文件名。
  • ext − 描述路径对象的文件扩展名。

返回值

此方法从指定的路径对象返回一个路径字符串。

在向 pathObject 提供值时,有一些组合,其中一个属性比另一个属性具有更高的优先级 -

如果给定了 'dir' 属性,则将忽略 pathObject 的 'root' 属性。

如果给定了 'base' 属性,则 pathObject 的 'ext' 属性和 'name' 将被忽略。

如果指定了 pathObject 的 'dir'、'root' 和 'base' 属性,则将忽略 'root' 属性。

在以下示例中,我们尝试为 pathObject 的 'dir'、'root' 和 'base' 属性提供值。


const path = require('path');
var formatted = path.format({
	 	root: '/IGNORED',
	 	dir: '/Desktop/JavaScript',
	 	base: 'Nodefile.js'
});
console.log(formatted);

输出

执行上述程序后,将返回 'dir' 和 'base',并忽略 pathObject 的 'root' 属性。

/Desktop/JavaScript/Nodefile.js

如果未给出 'dir' 属性,则将使用 pathObject 的 'root' 属性。

在以下示例中,我们尝试将值赋予 pathObject 的“root”和“base”属性,但尚未给出“dir”属性。


const path = require('path');
var formatted = path.format({
	 	root: '/Lenovo/',
	 	base: 'Nodefile.js'
});
console.log(formatted);

输出

执行上述程序后,将使用“root”,因为 pathObject 中没有给出“dir”属性。

/Lenovo/Nodefile.js

如果给定了 pathObject 的 'root' 属性,则不会包含平台分隔符。

在以下示例中,我们将提供 pathObject 的 'root'、'base' 和 'ext' 属性。


const path = require('path');
var formatted = path.format({
	 	root: '/Lenovo/',
	 	base: 'Nodefile',
	 	ext: '.js'
});
console.log(formatted);

输出

正如我们在下面的输出中看到的,'ext' 属性被忽略了,因为只给出了 pathObject 的 'root' 属性。

/Lenovo/Nodefile

如果 pathObject 的 'root' 和 'dir' 属性相同,则不会包含平台分隔符。那么 'ext' 将被忽略。

在以下示例中,我们将提供 pathObject 的 'root'、'base'、'dir' 和 'ext' 属性。


const path = require('path');
var formatted = path.format({
	 	root: '/Lenovo/',
	 	dir: '/Lenovo/',
	 	base: 'Nodefile',
	 	ext: '.js'
});
console.log(formatted);

输出

正如我们在下面的输出中看到的,'ext' 属性被忽略,因为 pathObject 的 'root' 和 'dir' 属性是相同的。

/Lenovo/Nodefile

如果未给出 'base',则将使用 pathObject 的 'name' + 'ext' 属性。

在以下示例中,我们尝试提供 pathObject 的 'root'、'name' 和 'ext' 属性,但我们没有给出 'base' 属性。


const path = require('path');
var formatted = path.format({
	 	root: '/Lenovo',
	 	name: '/Nodefile',
	 	ext: '.js'
});
console.log(formatted);

输出

执行上述程序后,将返回 pathObject 的 'name' + 'ext' 属性来代替 'base' 属性,因为没有给出 'base' 属性。

/Lenovo/Nodefile.js