UNIX绝对路径以'/‘开头,而Windows以字母'C:’或'\‘开头。node.js有没有一个标准的多平台功能来检查路径是绝对的还是相对的?
发布于 2015-05-26 13:56:45
从node版本0.12.0开始,您可以使用path模块中的path.isAbsolute(path)
函数。
即:
var path = require('path');
if(path.isAbsolute(myPath)) {
//...
}
发布于 2014-02-11 18:17:06
你可以使用
path.resolve(yourPath)===yourPath
如果您的路径未标准化,请使用
path.resolve( yourPath ) == path.normalize( yourPath )
发布于 2014-06-15 09:33:59
正如对dystroy的回答所评论的那样,如果绝对路径尚未标准化(例如,路径:///a//..//b//./
),则所提出的解决方案不起作用。
正确的解决方案是:
path.resolve(yourPath) === path.normalize(yourPath)
正如Marc Diethelm在评论中建议的那样,这仍然存在一些问题,因为path.resolve
删除了尾部斜杠,而path.normalize
没有。
我不确定这些函数到底是如何运行的(你可以在评论中看到),不管怎么说,下面的代码片段看起来至少在Linux环境下工作得很好:
path.resolve(yourPath) === path.normalize(yourPath).replace( RegExp(path.sep+'$'), '' );
https://stackoverflow.com/questions/21698906
复制相似问题