|
本模块包含一系列处理和转换文件路径的工具集。基本所有的反复都仅对字符串转换。文件系统不会检查路径是否有效。 通过 require('path') 来访问这个模块。提供了以下方法: path.normalize(p)规范化路径,注意'..' 和 '.'。 发现多个斜杠时,会替换成一个斜杠。当路径末尾包含一个斜杠时,保留。Windows 系统使用反斜杠。 例如: - path.normalize('/foo/bar//baz/asdf/quux/..')
- // returns
- '/foo/bar/baz/asdf'
复制代码 path.join([path1][, path2][, ...])连接所有的参数,并规范化输出路径。 参数必须是字符串。在 v0.8 版本,非字符参数会被忽略。v0.10之后的版本后抛出异常。 例如: - path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
- // returns
- '/foo/bar/baz/asdf'
- path.join('foo', {}, 'bar')
- // throws exception
- TypeError: Arguments to path.join must be strings
复制代码 path.resolve([from ...], to)
将 to 参数解析为绝对路径。 如果参数 to 不是一个相对于参数 from 的绝对路径,to会添加到 from 右侧,直到找到一个绝对路径为止。如果使用所有 from 参数后,还是没有找到绝对路径,将会使用当前工作目录。返回的路径已经规范化过,并且去掉了尾部的斜杠(除非是根目录)。非字符串的参数会被忽略。 另一种思路就是在shell里执行一系列的 cd 命令。 - path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
复制代码类似于: - cd foo/bar
- cd /tmp/file/
- cd ..
- cd a/../subfile
- pwd
复制代码不同点是,不同的路径不需要存在的,也可能是文件。 例如: - 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 currently in /home/myself/node, it returns
- '/home/myself/node/wwwroot/static_files/gif/image.gif'
复制代码
|