react + electron 如何设置默认下载路径
时间: 2024-01-01 17:04:36 浏览: 255
在 Electron 中,可以使用 Node.js 的 `dialog.showOpenDialog()` 方法来让用户选择默认的下载路径。具体的实现步骤如下:
1. 在渲染进程中,通过 `ipcRenderer` 向主进程发送一个事件请求打开文件对话框,代码如下:
```javascript
const { ipcRenderer } = require('electron');
ipcRenderer.send('open-file-dialog');
```
2. 在主进程中,监听该事件,使用 `dialog.showOpenDialog()` 方法来打开文件对话框,选择默认的下载路径,并将结果返回给渲染进程,代码如下:
```javascript
const { ipcMain, dialog } = require('electron');
ipcMain.on('open-file-dialog', (event) => {
dialog.showOpenDialog({
properties: ['openDirectory', 'createDirectory']
}).then(result => {
event.sender.send('selected-directory', result.filePaths[0]);
});
});
```
3. 在渲染进程中,监听返回的结果,并将其设置为默认的下载路径,代码如下:
```javascript
const { ipcRenderer } = require('electron');
const path = require('path');
ipcRenderer.on('selected-directory', (event, filePath) => {
const downloadPath = path.join(filePath, 'downloads');
localStorage.setItem('downloadPath', downloadPath);
});
```
在上述代码中,我们将选择的文件夹路径与一个名为 `downloads` 的文件夹名合并,形成默认的下载路径,并将其存储在本地存储中,以便在后续的下载操作中使用。
4. 最后,在下载文件时,可以使用上述存储的默认下载路径来设置下载路径,代码如下:
```javascript
const { app } = require('electron');
const path = require('path');
const downloadPath = localStorage.getItem('downloadPath') || app.getPath('downloads');
const filePath = path.join(downloadPath, 'myFile.txt');
// 使用 filePath 作为下载路径来下载文件
// ...
```
在上述代码中,我们首先从本地存储中获取默认的下载路径,如果不存在则使用 Electron 提供的默认下载路径(即操作系统的默认下载路径),然后将文件名与下载路径合并,形成最终的下载路径。
阅读全文