我想存储的用户计算机上的图像,所以我想,这应该存储在用户数据文件夹,如所描述这里.
app.getPath(name)
name.返回String - 指向与name关联的特殊目录或文件的路径.失败时会抛出错误.您可以通过名称请求以下路径:
home用户的主目录
appData每用户应用程序数据目录,默认情况下指向:Windows $ XDG_CONFIG_HOME上的%APPDATA%或Linux上的〜/ .config~/macOS上的应用程序支持
userData用于存储应用程序配置文件的目录,默认情况下,它是附加了应用程序名称的appData目录.- ...
这就是我认为你应该做的事情:
const app = require('electron');
alert(app.getPath('userData'));
Run Code Online (Sandbox Code Playgroud)
但我得到"getPath不是一个函数".我不知道该把它放在哪里.它不能从我的html文件或渲染器文件中工作,我不知道如何从主文件中使用它,因为它没有链接到网页.
sta*_*ers 19
想通了这个想法
const remote = require('electron').remote;
const app = remote.app;
console.log(app.getPath('userData'));
Run Code Online (Sandbox Code Playgroud)
Has*_*Eqx 11
remote 被认为是危险的。
app.getPath将始终可用main。
以下是如何在不使用remote(电子 7+)的情况下在渲染器进程中执行此操作
基本上你必须invoke在渲染器中使用。
在 main
ipcMain.handle('read-user-data', async (event, fileName) => {
const path = electron.app.getPath('userData');
const buf = await fs.promises.readFile(`${path}/${fileName));
return buf
})
Run Code Online (Sandbox Code Playgroud)
在 renderer
ipcRenderer.invoke('read-user-data', 'fileName.txt').then(result=> doSomething());
Run Code Online (Sandbox Code Playgroud)
这是我需要在开发和发布之间切换时使用的
const electron = require('electron');
export const userDataPath = (electron.app || electron.remote.app).getPath(
'userData'
);
Run Code Online (Sandbox Code Playgroud)
另一种防止错误“getPath is not a function”的方法是让代码在渲染器进程和主进程中都能工作:
const electron = require('electron');
const configDir = (electron.app || electron.remote.app).getPath('userData');
console.log(configDir);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11899 次 |
| 最近记录: |