如何在 Electronjs 应用程序中单击按钮来打开资源管理器中的文件夹?我通过将其设置为在主程序启动时执行的位置来使其工作。但 id 我将其设为一个函数并使用 HTML 按钮中的 onclick 调用它,但它不起作用。我尝试过表单渲染器、主要和预加载。我对电子和节点很了解,所以我有一种感觉,也许我没有正确理解这些过程?
默认.html
<button name="SystemMenu-Button" id="SystemMenu-Button" class="SystemMenu-Button" onclick="openDocuments()">
Documents
<i name="SystemMenu-ButtonIcon" id="SystemMenu-ButtonIcon" class="fa-solid fa-folder-open fa-fw"></i>
</button>
default.main.js - 可以工作,但不是我需要的
const { app, BrowserWindow, shell } = require('electron');
const path = require('node:path');
const documentsPath = 'E:/';
shell.openPath(documentsPath);
default.main.js - 不会工作,但它需要它
const { app, BrowserWindow, shell } = require('electron');
const path = require('node:path');
const documentsPath = 'E:/';
function openDocuments() {
shell.openPath(documentsPath);
}
当您使用基于 Windows 的系统时,我会推荐以下内容:
import child_process from 'node:child_process';
const WindowsDocumentsPath = '%HomeDrive%' + '%HomePath%' + '/Documents';
child_process.exec(`start ${WindowsDocumentsPath}`);
这将为您的控制台(cmd/powershell)实例化一个新的子进程,然后只需从控制台调用
start
命令即可。
请注意,在 Windows 中,您可以使用通配符变量来访问常见的动态位置:
%AppData%/AppName
指向您的电子浏览器数据的存储位置。
%HomeDrive%%HomePath%/Documents
指向当前用户My Documents
目录(默认情况下,如果不更改)。
%Public%
指向windows公共用户目录(通常是C:\Users\Public
.