首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >你需要在node.js中使用path.join吗?

你需要在node.js中使用path.join吗?
EN

Stack Overflow用户
提问于 2012-03-18 14:44:14
回答 3查看 92.1K关注 0票数 145

众所周知,Windows使用反斜杠处理路径,而Unix使用正斜杠处理路径。node.js提供了path.join()来始终使用正确的斜杠。因此,例如,您可以使用path.join('a','b','c'),而不是只编写Unix的'a/b/c'

然而,尽管有这样的差异,如果你不标准化你的路径(例如使用path.join),只是像a/b/c一样写路径,node.js在Windows上运行你的脚本没有问题。

那么,相对于'a/b/c',编写path.join('a','b','c')有什么好处吗?无论平台如何,两者似乎都能正常工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-21 14:15:52

Windows文件系统使用正斜杠或反斜杠作为路径分隔符都没有问题(从DOS时代起就是这样)。唯一真正的问题是,Windows命令行处理器(或者,更具体地说,Windows本机命令行实用程序)倾向于将正斜杠解释为选项说明符,而不是路径组件。因此,如果需要将路径传递给作为子进程运行的Windows命令,则需要使用带反斜杠的路径。此外,返回路径的Windows API调用(以及来自调用Windows API的高级语言的方法)将使用反斜杠,因此即使您没有将它们传递给子进程,也需要对它们进行规范化。

票数 110
EN

Stack Overflow用户

发布于 2014-02-28 04:59:48

path.join将处理不必要的分隔符,如果给定的路径来自未知来源,则可能发生这种情况(例如,用户输入、第三方API等)。

所以path.join('a/','b') path.join('a/','/b')path.join('a','b')path.join('a','/b')都会给a/b

在不使用它的情况下,您通常会对连接的路径的起点和终点做出期望,因为您知道它们只有一个斜杠或一个斜杠。

票数 102
EN

Stack Overflow用户

发布于 2012-03-18 16:03:05

我使用path.join来确保文件夹分隔符位于正确的位置,而不一定是为了确保它使用正斜杠和反斜杠。例如:

代码语言:javascript
复制
path.join("/var/www", "test")

将正确地在www和测试/var/www/test之间插入分隔符

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9756567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档