如何解决如何将所选目录的路径获取到渲染器进程中
我想将使用 dialog.showOpenDialog 选择的本地目录的路径存储在变量中。 我尝试了所有教程和堆栈答案,但没有任何运气。 最好的部分是即使电子 API 演示解决方案也不起作用(我在这里使用一个) 因此,对话框打开,我可以选择文件夹或文件 - 但没有任何内容发送回渲染器进程。
在这里,我正在使用打开文件进行测试,但也没有结果。 我正在使用 jquery btw 和 elcetron v 12。 这是我的代码:
渲染进程:
$('.js_select_folder').on('click',(e) =>{
ipcRenderer.send('open-folder')
e.preventDefault();
})
ipcRenderer.on('selected-folder',(event,path) => {
console.log('wtf',path)
$('#info').text('Result :'+path)
})
主要流程:
ipcMain.on('open-folder',(event) => {
dialog.showOpenDialog({ properties:['openFile']},(files) => {
if(files){
console.log(files)
event.reply('selected-folder',files)
}
})
})
在任何地方都没有 console.log(files) 的踪迹。 知道我做错了什么吗?
解决方法
我想通了:
渲染进程:
$('.js_test').on('click',(e)=>{
e.preventDefault();
ipcRenderer.send('open-folder')
})
ipcRenderer.on('sel-dir',(event,path) => {
const message = `This app is located at: ${path}`
$('#info').text(message)
})
主进程:
ipcMain.on('open-folder',arg) => {
dialog.showOpenDialog({properties: ['openDirectory']}).then(result=>{
event.sender.send('sel-dir',result.filePaths)
})
})
所以正如您所见,它实际上非常简单,但我花了两天时间才弄明白。 结果是我在选择目录或文件后将路径(或任何数据)返回给渲染器。
问候,Mac。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。