如何在 Electron 中单击按钮打开资源管理器中的文件夹?

问题描述 投票:0回答:1

如何在 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);
}
javascript html node.js electron
1个回答
0
投票

当您使用基于 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
.

© www.soinside.com 2019 - 2024. All rights reserved.