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