任何人都可以向我解释为什么这是真的:
规范化字符串路径,处理'..'和'。'部分。
当找到多个斜杠时,它们会被一个斜杠替换; 当路径包含尾部斜杠时,它将被保留。在Windows上 使用反斜杠。
Example:
path.normalize('/foo/bar//baz/asdf/quux/..')
// returns '/foo/bar/baz/asdf'
当我希望它返回时
'/foo/bar/baz/asdf/quux'
这来自节点文档 http://nodejs.org/api/path.html#path_path_normalize_p
修改
在运行一些测试之后,我知道“为什么”这种情况正在发生,但却不理解它背后的逻辑。 以下是输入和输出的三个示例。
/foo/bar//baz/asdf/quux/.. /foo/bar//baz/asdf
/foo/bar//baz/asdf/quux/. /foo/bar//baz/asdf/quux
/foo/bar//baz/asdf/quux/ /foo/bar//baz/asdf/quux/
所以对于原版我可以看到双倍期“..”删除了最后一个文件夹和单个句号“。”删除尾部斜杠。我明白,当在父文件夹中包含文件时,你会在路径前面加上../我假设你实际上可以把它放在路径中的任何地方,虽然我现在似乎没有必要把它放在中间路径上。
答案 0 :(得分:1)
双冒号(..
)表示父目录,这是Linux中的标准目录。因此,/foo/bar//baz/asdf/quux/..
基本上选择了/foo/bar//baz/asdf/quux