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

相关文章
|
11天前
|
JSON 前端开发 JavaScript
在JavaScript中,异步编程是一种处理非阻塞操作(如网络请求、文件读写等)的重要技术
【6月更文挑战第12天】JavaScript中的异步编程通过Promise和async/await处理非阻塞操作。Promise管理异步操作的三种状态,防止回调地狱,支持链式调用和并行处理。async/await是ES8引入的语法糖,使异步代码更像同步代码,提高可读性。两者结合使用能更高效地处理复杂异步场景。
21 3
|
1月前
|
JavaScript 前端开发 网络安全
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
【网络安全 | 信息收集】JS文件信息收集工具LinkFinder安装使用教程
59 4
|
4天前
|
Python
【干货】Python下载网络小说
【干货】Python下载网络小说
11 2
|
13天前
|
分布式计算 NoSQL 大数据
MaxCompute产品使用合集之自定义udf连接云上vpc网络的redis获取数据的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
18天前
|
监控 网络协议 Ubuntu
Linux网络配置全攻略:解读/etc/network/interfaces文件的精髓
Linux网络配置全攻略:解读/etc/network/interfaces文件的精髓
35 1
|
23天前
|
存储 网络协议 Linux
NFS(Network File System 网络文件服务)
NFS(Network File System 网络文件服务)
|
1月前
|
机器学习/深度学习 自然语言处理 网络安全
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
28 1
|
22天前
|
存储 Linux 文件存储
网络文件共享ftp
网络文件共享ftp
|
24天前
|
Web App开发 监控 安全
【网络安全】新的恶意软件:无文件恶意软件GhostHook正在广泛传播
GhostHook v1.0,一款由Native-One黑客组织开发的无文件浏览器恶意软件,正在网络犯罪论坛快速扩散,对多平台和浏览器构成威胁。这款恶意软件兼容Windows、Android、Linux和macOS,以及Google Chrome、Firefox、Opera和Edge等浏览器。它通过伪装的URL在社交论坛、邮件、即时消息和QR码中传播。无文件恶意软件利用内存驻留、系统工具和隐蔽性高的特点逃避检测,强调了对先进安全策略如EDR系统、网络监控和用户安全教育的需求。
293 0
|
1月前
|
前端开发 JavaScript 安全
【网络安全】WebPack源码(前端源码)泄露 + jsmap文件还原
【网络安全】WebPack源码(前端源码)泄露 + jsmap文件还原
148 0

热门文章

最新文章