Module 基础模块

模块 path

path 模块是一个核心模块,它提供了一些工具函数来处理文件和目录的路径。它不会检查路径是否存在或是否是有效路径,而是只提供了处理路径的方法

path 模块提供的方法很多,最常用的是:

  • join():将给定的路径片段连接在一起,并处理成标准的路径格式。
  • resolve():将路径或路径片段的序列解析为一个绝对路径。
  • basename():返回路径中路径的最后一部分。
  • dirname():返回指定路径的目录名。
  • extname():返回路径中文件的扩展名。

以下是这些方法的示例代码:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
const path = require('path'); // connect path segments using the platform-specific separator as a delimiter, console.log(path.join('/usr', 'local', 'bin')); // output: /usr/local/bin // resolve a sequence of paths or path segments into an absolute path console.log(path.resolve('/foo/bar', './baz')); // output: /foo/bar/baz // return the last portion of a path console.log(path.basename('/foo/bar/baz')); // output: baz // return the directory name of a path console.log(path.dirname('/foo/bar/baz')); // output: /foo/bar // return the extension of the path, from the last '.' to end of string in the last portion of the path console.log(path.extname('/foo/bar/baz.txt')); // output: .txt

除了上述方法,path 模块还提供了很多其他的方法,如 normalize()、delimiter、posix、win32 等等,用于处理路径的规范化、路径分隔符、路径格式的处理等等。这些方法在实际开发中也经常用到。

path 模块为我们处理路径提供了很多方便的工具函数,可以使我们更加方便地处理文件和目录路径,是开发中不可或缺的工具之一。

静态函数

normalize

标准化路径,处理路径中父目录等信息

1
static String path.normalize(String path);

调用参数:

  • path: String, 给定的未处理的路径

返回结果:

  • String, 返回经过处理的路径

basename

查询路径中的文件名称,若指定扩展名,则自动取消匹配的扩展名

1 2
static String path.basename(String path, String ext = "");

调用参数:

  • path: String, 给定查询的路径
  • ext: String, 指定扩展名,若文件名中有符合条件的扩展名,将自动取消

返回结果:

  • String, 返回文件名称

extname

查询路径中的文件扩展名

1
static String path.extname(String path);

调用参数:

  • path: String, 给定查询的路径

返回结果:

  • String, 返回得到的扩展名

format

尝试将一个对象格式化为路径

1
static String path.format(Object pathObject);

调用参数:

  • pathObject: Object, 对象

返回结果:

  • String, 返回格式化后的路径

pathObject 支持的参数如下:

1 2 3 4 5 6 7
{ "root": "/", "dir": "/a/b", "base": "c.ext", "ext": ".ext", "name": "c" }

parse

解析路径为路径对象

1
static NObject path.parse(String path);

调用参数:

  • path: String, 路径

返回结果:

  • NObject, 返回 pathObject 对象

dirname

查询路径中的目录路径

1
static String path.dirname(String path);

调用参数:

  • path: String, 给定查询的路径

返回结果:

  • String, 返回得到的目录的路径

fullpath

转换给定路径为全路径

1
static String path.fullpath(String path);

调用参数:

  • path: String, 给定转换的路径

返回结果:

  • String, 返回转换的全路径

isAbsolute

识别给定的路径是否是绝对路径

1
static Boolean path.isAbsolute(String path);

调用参数:

  • path: String, 给定需要识别的路径

返回结果:

  • Boolean, 是绝对路径则返回 true

join

合并一系列路径成为一个单一路径

1
static String path.join(...ps);

调用参数:

  • ps: ..., 一个或多个相关的路径

返回结果:

  • String, 返回得到的新路径

resolve

合并一系列路径成为一个绝对路径

1
static String path.resolve(...ps);

调用参数:

  • ps: ..., 一个或多个相关的路径

返回结果:

  • String, 返回得到的新路径

relative

求 _from 到 to 的相对路径

1 2
static String path.relative(String _from, String to);

调用参数:

  • _from: String, 源路径
  • to: String, 目标路径

返回结果:

  • String, 返回得到的相对路径

toNamespacedPath

转换成 namespace-prefixed 路径。只在 windows 有效,其他系统直接返回。

1
static Value path.toNamespacedPath(Value path = undefined);

调用参数:

  • path: Value, 给定的路径。

返回结果:

  • Value, 返回得到的新路径

see: https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces

静态属性

sep

String, 查询当前操作系统的路径分割字符,posix 返回 '/', windows 返回 '\'

1
static readonly String path.sep;

delimiter

String, 查询当前操作系统的多路径组合字符,posix 返回 ':', windows 返回 ';'

1
static readonly String path.delimiter;

posix

Object, posix 实现,参见 path_posix

1
static readonly Object path.posix;

win32

Object, windows 实现,参见 path_win32

1
static readonly Object path.win32;