Man*_*rio 27 javascript directory path absolute node.js
UNIX绝对路径以'/'开头,而Windows以字母'C:'或'\'开头.node.js是否有标准的多平台函数来检查路径是绝对路径还是相对路径?
chr*_*sse 31
从节点版本0.12.0开始,您可以使用路径模块中的path.isAbsolute(path) 功能.
即:
var path = require('path');
if(path.isAbsolute(myPath)) {
//...
}
Run Code Online (Sandbox Code Playgroud)
你可以用
path.resolve(yourPath)===yourPath
Run Code Online (Sandbox Code Playgroud)
如果您的路径未规范化,请使用
path.resolve( yourPath ) == path.normalize( yourPath )
Run Code Online (Sandbox Code Playgroud)
正如对破坏的答案所评论的那样,如果绝对路径尚未规范化(例如路径:),则建议的解决方案不起作用///a//..//b//./.
正确的解决方案是:
path.resolve(yourPath) === path.normalize(yourPath)
Run Code Online (Sandbox Code Playgroud)
正如Marc Diethelm在评论中所暗示的那样,这仍有一些问题,因为path.resolve删除尾随斜线而path.normalize不是.
我不确定这些函数是如何完全表现的(正如你在评论中看到的那样),无论如何,以下代码片段似乎至少在Linux环境中工作正常:
path.resolve(yourPath) === path.normalize(yourPath).replace( RegExp(path.sep+'$'), '' );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12124 次 |
| 最近记录: |