网站搜索

javascript - node.js fs.existsSync 总是返回 false


我在这个路径上有一个文件:~/Downloads/flightlog_2017-71-19_19747.txt

但当我尝试写入或检查它是否存在时:

fs.existsSync('~/Downloads/flightlog_2017-71-19_19747.txt')

它总是返回 false

如果我在终端中操作:

$ nano ~/Downloads/flightlog_2017-71-19_19747.txt

这很好用

答案#1

您可以使用 const homedir=require('os').homedir(); 动态获取的 homedir 来替换 ~。

所以不是:

fs.existsSync('~/Downloads/flightlog_2017-71-19_19747.txt')

你可以做类似这样的事情:

const homedir = require('os').homedir();
fs.existsSync(homedir + '/Downloads/flightlog_2017-71-19_19747.txt')

希望这有帮助!

答案#2

我不认为在 Node 中使用 ~ 来引用用户的主目录是被支持的。因为在 Windows 中没有相应的命令。

你可以关注这个讨论帖以获取完整的讨论。https://github.com/nodejs/node/issues/684

目前你可以使用 untildify npm 包来满足你的需求。