Electron:如何为用户数据设置自定义目录(--user data dir)

Electron:如何为用户数据设置自定义目录(--user data dir),electron,chromium,Electron,Chromium,我想将我的electron应用程序的--user data dir设置为自定义目录,在我的情况下,我希望它默认为公共目录中的一个文件夹,以便运行该应用程序的任何用户都将共享相同的资产目录 Electron的功能似乎不支持这一点(我尝试时也不起作用),因此我对如何实现这一切换有点迷茫。在使用Electron构建的应用程序中,通常通过使用主进程动态获取默认用户数据目录: const { app } = require ('electron'); const userDataPath = app.ge

我想将我的electron应用程序的--user data dir设置为自定义目录,在我的情况下,我希望它默认为公共目录中的一个文件夹,以便运行该应用程序的任何用户都将共享相同的资产目录


Electron的功能似乎不支持这一点(我尝试时也不起作用),因此我对如何实现这一切换有点迷茫。

在使用Electron构建的应用程序中,通常通过使用主进程动态获取默认用户数据目录:

const { app } = require ('electron');
const userDataPath = app.getPath ('userData');
还可以使用以下命令设置自定义目录的路径:

重写与关联的特殊目录或文件的路径 名称如果路径指定的目录不存在,则 将使用此方法创建目录。失败时,会出现错误 扔

您只能覆盖app.getPath中定义的名称的路径

默认情况下,网页的cookie和缓存将存储在 用户数据目录。如果你想改变这个位置,你必须 在启动应用程序模块的就绪事件之前覆盖userData路径 发射


解决了我的问题!我一直认为我需要发送一个标志或开关,但没有意识到这是这么简单。太感谢你了!它说,在发出应用程序模块的就绪事件之前,您应该覆盖
userData
path。那会在哪里?在index.js或主electron process文件顶部的任何位置都有一个even-emission-before
ready
?@dguay,您可以在其中设置所有全局变量。只要在侦听和/或调用
ready
侦听器之前定义了所有变量,就可以了。
app.setPath ('userData', "path/to/new/directory");