path.resolve([...paths])
path.resolve()
方法将路径或路径片段的序列解析为绝对路径。
给定的路径序列从右到左处理,每个后续的 path
会被追加到前面,直到构建绝对路径。
例如,给定路径片段的序列:/foo
、/bar
、baz
,调用 path.resolve('/foo', '/bar', 'baz')
将返回 /bar/baz
,因为 '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
。
The path.resolve()
method resolves a sequence of paths or path segments into
an absolute path.
The given sequence of paths is processed from right to left, with each
subsequent path
prepended until an absolute path is constructed.
For instance, given the sequence of path segments: /foo
, /bar
, baz
,
calling path.resolve('/foo', '/bar', 'baz')
would return /bar/baz
because 'baz'
is not an absolute path but '/bar' + '/' + 'baz'
is.
If, after processing all given path
segments, an absolute path has not yet
been generated, the current working directory is used.
The resulting path is normalized and trailing slashes are removed unless the path is resolved to the root directory.
Zero-length path
segments are ignored.
If no path
segments are passed, path.resolve()
will return the absolute path
of the current working directory.
path.resolve('/foo/bar', './baz');
// Returns: '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/');
// Returns: '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// If the current working directory is /home/myself/node,
// this returns '/home/myself/node/wwwroot/static_files/gif/image.gif'
A TypeError
is thrown if any of the arguments is not a string.