繁体   English   中英

fs in Node.js 看不懂~/

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM