如何使用typescript获取应用程序运行的路径?

geo*_*geo 12 typescript nedb electron

我正在尝试用电子,angular2,打字稿和neDB创建一个桌面应用程序.为了能够用neDB创建一个'文件'数据库我想要我的项目的路径.我怎么能用打字稿来得到它?

Dan*_*Dan 26

使用app.getAppPath()

Typescript是javascript的超集,因此你可以像使用javascript一样进行,尽管你可能想要声明打字,或者在你这样做时使用其他打字稿功能.

例:

const remote = require('remote'), 
      app = remote.require('app');

var basepath = app.getAppPath();
Run Code Online (Sandbox Code Playgroud)

  • 在较新版本的电子中,应该使用`require('electron').remote.app` (11认同)
  • 对于更新版本的电子,应该使用`require('electron').app` (3认同)

Vad*_*gon 21

将数据写入应用程序安装目录通常是一个坏主意,因为运行应用程序的用户可能没有将文件写入该目录的权限.你可能应该做的是在返回的位置创建数据库文件app.getPath('userData').

  • 除非它是一个便携式应用程序 (7认同)

key*_*map 7

如果您正在运行打包的应用程序并且想要获取应用程序可执行文件的路径(不是主节点进程索引脚本路径,它可能位于 ASAR 内),则不app.getAppPath()正确。你想要app.getPath("exe"),并得到它的路径:

require("path").dirname(require('electron').remote.app.getPath("exe"))
Run Code Online (Sandbox Code Playgroud)

  • 对于较新的 Electron 版本,请使用 `require("path").dirname(require(' Electron').app.getPath("exe"))` (3认同)