切换到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 } });