import * as remoteMain from '@electron/remote/main';
// ...
remoteMain.initialize();
function createWindow() {
win = new BrowserWindow({
webPreferences: {
plugins: true,
contextIsolation: false,
webSecurity: false
// ...
}
});
remoteMain.enable(win.webContents);
//...
}
字符串
最后,我用来记录组件中文件路径的函数:
import * as remote from '@electron/remote';
// ...
async function getDir() {
const showDialog = await remote.dialog.showOpenDialog({
properties: ['openDirectory']
});
// Do things with showDialog
console.log(showDialog.filePaths) // logs the directory path.
}
6条答案
按热度按时间khbbv19g1#
正如@phuongle在评论中指出的那样,你想使用
showOpenDialog()
。类似这样:字符串
更新:如果以上方法不适用于您当前的Electron版本,您应该尝试更现代的导入:
型
此外,为了使用
remote
,您需要在主进程中创建窗口时设置enableRemoteModule
:型
6qfn3psc2#
以下官方IPC tutorial为我工作
主进程:
字符串
预加载脚本:
型
现在您可以从应用代码中调用selectFolder方法并获取用户输入。
型
d6kp6zgx3#
在Electron中,我们可以通过指定简单的输入元素type=“file”和webkitdirectory attribute '.
<input id="myFile" type="file" webkitdirectory />
来选择目录,我们可以通过File对象document.getElementById("myFile").files[0].path
的path属性获得目录的完整路径rks48beu4#
更新最新版本的electron(适用于25.3.0)和ES6 import
npm install --save @electron/remote
字符串
型
iyr7buue5#
你可以使用Node的
path.relative
。wpx232ag6#
对我来说,解决方案就是在react中使用all,在react组件中使用值
true
作为字符串。不需要额外的配置。就像这样:
字符串
编辑
事实证明,正如@cbartondock所提到的,它会递归地在目录中查找文件,这并不好!
我最终使用所需的电子遥控器的对话框。