electron如何自定义目录,修改文件名保存下载的网络文件

简介: 很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。

一、先看效果图


SSGBznPRCnGIUGSGnWLV0cug0rr5Ia1D3gxpOdfR.gif


二、安装使用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打开文件夹


fb9c46ad82594b40a0ef31819110e2a3_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


  • openDirectory  --允许选择文件夹



四、如何实现网络文件下载,并更改下载为文件名


可以使用fs.createWriteStream的方式,以文件流的形式保存文件


9f8ebe2225d840ebbcd3310e7bd53c6a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


参数说明


  • url --要下载的文件网络地址
  • filename --文件名称
  • savepath -- 要保存的文件路径
  • callback --返回回调函数


整个代码如下


MH6xc5bg2088roma39b9cYJ1Sn1d8ZMGQiU3zl9o.png

相关文章
|
2月前
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
|
6月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
233 12
|
消息中间件 存储 Serverless
函数计算产品使用问题之怎么访问网络附加存储(NAS)存储模型文件
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7月前
|
运维 安全 网络安全
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
231 0
VMware NSX 4.2.1.3 下载 - 网络安全虚拟化平台
|
11月前
|
安全 NoSQL Redis
Docker自定义网络
Docker自定义网络
135 11
|
11月前
|
Docker 容器
docker中创建自定义网络
【10月更文挑战第7天】
429 6
|
Shell Linux Docker
自定义Docker网络
这篇文章介绍了如何使用Docker命令自定义网络,并通过创建和配置网络来实现容器间的通信。
126 7
自定义Docker网络
|
11月前
|
Docker 容器
docker中自定义网络
【10月更文挑战第5天】
192 3
java网络编程 UDP通信协议实现局域网内文件的发送和接收
java网络编程 UDP通信协议实现局域网内文件的发送和接收
163 1
java网络编程 UDP通信协议实现局域网内文件的发送和接收
|
SQL 网络协议 安全
【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
【Azure API 管理】APIM集成内网虚拟网络后,启用自定义路由管理外出流量经过防火墙(Firewall),遇见APIs加载不出来问题
155 0

热门文章

最新文章