node.js fs.existsSync 总是假的



我在这个路径上有一个文件:~/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

这工作正常

您可以使用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')

希望对您有所帮助!

我不认为在 Node 中使用 ~ 来引用用户的主目录。因为Windows中没有等效的命令。

您可以关注此线程进行完整讨论。 https://github.com/nodejs/node/issues/684

目前,您可以使用untildify npm包来满足自己的需求。

~对 shell(终端进程(是特殊的,扩展到当前的主目录,但除此之外它并不特殊。需要使用绝对路径或相对路径(相对于流程(。

例如,假设~映射到/home/arti

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

或者,如果您在~/example中运行进程,则此相对路径将起作用:

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

相关内容

  • 没有找到相关文章

最新更新