一、先看效果图
二、安装使用store进行路径的存读取
1、为什么不使用window.localStorage
localStorage仅在浏览器进程(渲染进程)中起作用。 localStorage的容错性不是很高,因此,如果您的应用遇到错误并意外退出,则可能会丢失数据。 localStorage仅支持持久字符串。 此模块支持任何JSON支持的类型。 localStorage不是很安全,可能是由于xss攻击而泄漏信息。 electron-store模块的API更好。 您可以设置并获取嵌套属性。 您可以设置默认的初始配置。
2、关于vuex和storage的区别
vuex存储在内存,localstorage则以文件的方式存储在本地,electron-store数据存储卸载应用之后依然存在。 应用场景:vuex用于组件之间的传值,localstorage则主要用于不同页面之间的传值。 永久性:当刷新页面时vuex存储的值会丢失,localstorage不会。
注:很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。
3、安装electron-store
npm install electron-store
注:需要Electron 5或更高版本。如果安装失败,可以换成命令cnpm install electron-store(前提是安装了cnpm)
4、electron-store用法
const Store = require('electron-store'); const store = new Store(); store.set('unicorn', '🦄'); console.log(store.get('unicorn')); //=> '🦄' // 使用点表示法访问嵌套属性 store.set('foo.bar', true); console.log(store.get('foo')); //=> {bar: true} store.delete('unicorn'); console.log(store.get('unicorn')); //=> undefined
三、electron使用 dialog.showOpenDialog打开文件夹
- openDirectory --允许选择文件夹
- res.filePaths[0] --选择的文件夹路径 详细配置请参考 https://www.electronjs.org/docs/api/dialog#dialogshowopendialogbrowserwindow-options
四、如何实现网络文件下载,并更改下载为文件名
可以使用fs.createWriteStream
的方式,以文件流的形式保存文件
参数说明
- url --要下载的文件网络地址
- filename --文件名称
- savepath -- 要保存的文件路径
- callback --返回回调函数
整个代码如下