26

我正在尝试使用 electron、angular2、typescript 和 neDB 创建一个桌面应用程序。为了能够使用 neDB 创建一个“文件”数据库,我想要我的项目的路径。如何使用 typescript 获得这个?

4

5 回答 5

46

使用app.getAppPath()

Typescript 是 javascript 的超集,因此您可以像使用 javascript 一样执行此操作,尽管您可能希望声明类型,或在这样做时使用其他 typescript 功能。

例子:

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

var basepath = app.getAppPath();

更新 - 这些天你应该使用:

const app = require('electron').remote.app

获取app.getAppPath().

于 2016-05-13T16:39:37.140 回答
22

将数据写入应用程序安装目录通常不是一个好主意,因为运行应用程序的用户可能无权将文件写入该目录。您可能应该做的是在app.getPath('userData').

于 2016-05-14T04:10:45.317 回答
9

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

require("path").dirname(require('electron').remote.app.getPath("exe"))
于 2020-10-01T05:15:48.533 回答
3

这对我有用:

require('electron').remote.app.getAppPath()
于 2019-10-22T16:26:58.087 回答
0

如果这可以帮助某人,我下载了 npm 包electron-root-path,它在我的情况下完美运行。

// Import ES6 way
import { rootPath } from 'electron-root-path';
 
// Import ES5 way
const rootPath = require('electron-root-path').rootPath;
于 2021-12-14T13:41:02.337 回答