[英]fs in Node.js Doesn't Understand ~/
我正在尝试检查目录是否作为 node.js 中命令行应用程序的一部分存在。但是, fs
似乎不理解~/
。 例如,以下返回 false...
> fs.existsSync('~/Documents')
false
...但这返回真...
> fs.existsSync('/Users/gtmtg/Documents')
true
……虽然两者是一回事。
为什么会发生这种情况,是否有解决方法? 提前致谢!
这是因为命令shell支持~/
,而不是文件系统API。
作为替代方案,用户的主路径 (~) 通常存储在环境变量 HOME 中。 所以你可以尝试使用这样的东西:
fs.existsSync(`${process.env.HOME}/Documents`);
或者,您可以创建一个 function 来处理波浪字符,如下所示:
function parseTildeHome(inputPath) {
return inputPath.replace('~', process.env.HOME);
}
fs.existsSync(parseTildeHome('~/Documents'));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.