切换到inputnodejs的path

让我们假设你已经安装了一个电子应用程序,并要求你input你当前项目的path。 你可能会这样做: ~/Documents/projectName

我如何在节点中input并检查它是否存在,特别是如果你input的path如上所示?

这是因为我想看看如果A)的path存在和B)如果这里有一个特定的文件(我将使用path.join(dirEntered, fileName.extension)

有没有办法做我想要的? 我看到chdir但改变工作目录的位置。 我猜这会很好,但是在做:

process.chdir('~/Documents')显示: no such file or directory, uv_chdir(…)

我想避免让用户input他们项目的完整绝对path。 这似乎“对我不好”。 而上传他们的项目是没有必要的,林读一个单一的文件(所以没有必要在这里上传)。

有任何想法吗?

是否有可能挖掘到cli命令,并采取这个input饲料在那里,并得到结果? 还是那个杀了?

这里有一个想法如何解决它。 如果path以代字号开头,则将该代字号replace为当前用户的完整主目录。 然后使用fs.stat来查看给定的path是否真的存在。

 const fs = require("fs"); const os = require("os"); var path = "~/Documents"; if (path.indexOf("~") === 0) { path = os.homedir() + path.substring(1); } fs.stat(path, (err, stats) => { if (!err) { // document or path exists if (stats.isFile()) { console.log("Path " + path + " is a file"); } else if (stats.isDirectory()) { console.log("Path " + path + " is a directory"); } } else { // document or path does not exist } });