electron 打开本地文件夹

使用的api为shell.openPath,有些文章会提到shell.openItem,这个方法在electron 9.0后就废弃被openPath替代了。
还有shell.openExternal,但路径中含有中文会报错,需转码,不推荐使用。

  • 打开E盘根目录下名为test的文件夹
const { shell } = require('electron')
shell.openPath('E:\\test')

能打开的前提是,E盘根目录下确实有这个文件夹。其次可以发现,我路径上使用的是\\而非/,如果使用/的话,openPath方法会直接报错。

  • 打开当前electron项目根目录下名为src的文件夹
const { app , shell } = require('electron')
shell.openPath(`${app.getAppPath()}\\src`)

这里需要注意的是,开发环境下getAppPath()获取的路径为项目根目录,而且启动开发环境的命令如果不为electron .,或者等效命令,那么也不为根目录。在electron打包之后,路径指向就不为根目录了。

### 实现网页中通过点击操作打开本地文件夹的功能 要在网页中实现通过点击事件打开本地文件夹的功能,可以通过多种方式来完成。以下是几种常见的方法及其适用场景: #### 方法一:使用自定义 Scheme 协议 一种常见的方式是利用自定义协议(Custom Protocol 或 URL Scheme)。这种方法需要先注册一个特定的协议名称,并将其绑定到目标应用程序上。 当用户点击链接时,浏览器会尝试调用该协议关联的应用程序并传递参数。例如,在 Windows 上可以设置 `myapp://` 协议指向某个可执行文件或脚本[^1]。 ##### 步骤说明: 1. 注册自定义协议。 2. 创建 HTML 页面中的超链接 `<a href="myapp://open/folder/path">Open Folder</a>`。 3. 配置客户端机器以响应此协议请求。 需要注意的是,这种方式依赖于用户的操作系统环境配置以及安全性策略限制。 ```html <a id="openFolderLink" href="#">Click to Open Local Folder</a> <script type="text/javascript"> document.getElementById('openFolderLink').onclick = function() { this.href = 'customscheme:///C:/example'; // Replace with actual path. }; </script> ``` #### 方法二:借助 Electron 应用框架 如果开发基于桌面端运行的应用,则推荐采用Electron技术栈构建跨平台GUI界面。其中 BrowserWindow 可用于加载Web页面并与之通信;而 fs 模块则允许读写磁盘数据[^2]。 在这种架构下可以直接调用 Node.js API 来处理文件系统的交互需求,比如展示目录列表或者启动资源管理器窗口等动作都变得十分简单明了。 示例代码如下所示: ```javascript const { shell } = require('electron'); shell.openPath('/path/to/directory'); // Opens the given file or directory in its default application. ``` #### 方法三:调整网络权限设置 (针对某些特殊情况) 对于部分因现代浏览器增强隐私保护机制而导致无法正常工作的案例来说,适当放宽相关选项或许能够解决问题。例如关闭 Chrome 浏览器关于阻止潜在危险内部网路请求的功能开关即可恢复预期行为模式[^4]。 不过值得注意的是此类改动可能会带来额外风险隐患因此仅建议在受控环境下谨慎施行。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值