我在这条路径上有一个文件:
~/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
这很好用
答案 0 :(得分:2)
~
对shell(终端进程)来说是特殊的,扩展到当前的主目录,但是不是特殊的。您需要使用绝对路径或相对路径(相对于流程)。
例如,假设~
映射到/home/arti
:
fs.existsSync('/home/arti/Downloads/flightlog_2017-71-19_19747.txt')
或者,如果您正在~/example
中运行该流程,那么此相对路径将起作用:
fs.existsSync('../Downloads/flightlog_2017-71-19_19747.txt')
答案 1 :(得分:1)
我不认为在Node中支持使用〜来引用用户的主目录。由于Windows中没有等效命令。
您可以按照此主题进行完整讨论。 Transform csv into transactions for arules
暂时您可以使用https://github.com/nodejs/node/issues/684 npm包来满足您的需求。
答案 2 :(得分:0)
您可以使用~
将homedir
替换为动态获取的const homedir = require('os').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')
希望有帮助!