首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查路径是绝对路径还是相对路径

如何检查路径是绝对路径还是相对路径
EN

Stack Overflow用户
提问于 2014-02-11 18:14:53
回答 6查看 19.5K关注 0票数 40

UNIX绝对路径以'/‘开头,而Windows以字母'C:’或'\‘开头。node.js有没有一个标准的多平台功能来检查路径是绝对的还是相对的?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-05-26 13:56:45

从node版本0.12.0开始,您可以使用path模块中的path.isAbsolute(path)函数。

即:

代码语言:javascript
复制
var path = require('path');
if(path.isAbsolute(myPath)) {
    //...
}
票数 57
EN

Stack Overflow用户

发布于 2014-02-11 18:17:06

你可以使用

代码语言:javascript
复制
path.resolve(yourPath)===yourPath

如果您的路径未标准化,请使用

代码语言:javascript
复制
path.resolve( yourPath ) == path.normalize( yourPath )
票数 10
EN

Stack Overflow用户

发布于 2014-06-15 09:33:59

正如对dystroy的回答所评论的那样,如果绝对路径尚未标准化(例如,路径:///a//..//b//./),则所提出的解决方案不起作用。

正确的解决方案是:

代码语言:javascript
复制
path.resolve(yourPath) === path.normalize(yourPath)

正如Marc Diethelm在评论中建议的那样,这仍然存在一些问题,因为path.resolve删除了尾部斜杠,而path.normalize没有。

我不确定这些函数到底是如何运行的(你可以在评论中看到),不管怎么说,下面的代码片段看起来至少在Linux环境下工作得很好:

代码语言:javascript
复制
path.resolve(yourPath) === path.normalize(yourPath).replace( RegExp(path.sep+'$'), '' );
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21698906

复制
相关文章

相似问题

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