path.resolve()
方法会将路径或路径片段的序列解析为绝对路径
官方文档解释如下:
path.resolve()方法会把一个路径或路径片段的序列解析为一个绝对路径。
给定的路径的序列是从右往左被处理的,后面每个 `path` 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:`/foo`、`/bar`、`baz`,则调用 `path.resolve('/foo', '/bar', 'baz')` 会返回 `/bar/baz`。
如果处理完全部给定的 `path` 片段后还未生成一个绝对路径,则当前工作目录会被用上。
生成的路径是规范化后的,且末尾的斜杠会被删除,除非路径被解析为根目录。
长度为零的 `path` 片段会被忽略。
如果没有传入 `path` 片段,则 `path.resolve()` 会返回当前工作目录的绝对路径。
例子:
path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录为 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
如果任何参数不是一个字符串,则抛出 [`TypeError`]
path.join()
官网文档解释如下:
//path.join() 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。
//长度为零的 path 片段会被忽略。 如果连接后的路径字符串是一个长度为零的字符串,则返回 '.',表示当前工作目录。
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// 返回: '/foo/bar/baz/asdf'
path.join('foo', {}, 'bar');
// 抛出 'TypeError: Path must be a string. Received {}'
__dirname // 目录名
当前模块的目录名。
示例:从 `/Users/mjr` 运行 `node example.js`
console.log(__dirname);
// 打印: /Users/mjr
console.log(path.dirname(__filename));
// 打印: /Users/mjr
__filename // 文件名
当前模块的文件名
从 /Users/mjr 运行 node example.js
console.log(__filename);
// 打印: /Users/mjr/example.js
console.log(__dirname);
// 打印: /Users/mjr
path.extname
获取文件后缀
`path.extname()` 方法返回 `path` 的扩展名,即从 `path` 的最后一部分中的最后一个 `.`(句号)字符到字符串结束。 如果 `path` 的最后一部分没有 `.` 或 `path` 的文件名(见 `path.basename()`)的第一个字符是 `.`,则返回一个空字符串。
例子:
path.extname('index.html');
// 返回: '.html'
path.extname('index.coffee.md');
// 返回: '.md'
path.extname('index.');
// 返回: '.'
path.extname('index');
// 返回: ''
path.extname('.index');
// 返回: ''
如果 `path` 不是一个字符串,则抛出 [`TypeError`]
path.basename
获取文件名
`path.basename()` 方法返回一个 `path` 的最后一部分,类似于 Unix 中的 `basename` 命令。 没有尾部文件分隔符,请查阅[`path.sep`]
例子:
path.basename('/foo/bar/baz/asdf/quux.html');
// 返回: 'quux.html'
path.basename('/foo/bar/baz/asdf/quux.html', '.html');
// 返回: 'quux'
如果 `path` 不是一个字符串或提供了 `ext` 但不是一个字符串,则抛出 [`TypeError`]
path.dirname
获取文件目录
`path.dirname()` 方法返回一个 `path` 的目录名,类似于 Unix 中的 `dirname` 命令。 Trailing directory separators are ignored, see [`path.sep`](https://www.nodeapp.cn/path.html#path_path_sep).
例子:
path.dirname('/foo/bar/baz/asdf/quux');
// 返回: '/foo/bar/baz/asdf'
如果 `path` 不是一个字符串,则抛出 [`TypeError`]
网友评论