Electron JS - 获取所选目录的路径

我在编程世界相当陌生。我正在制作一个应用程序,应该可以在其中选择一个目录,用于保存一些生成的文件。


我正在使用 ipc,看起来有些代码可以工作,但看起来我无法让 mainIpc 将路径发送回渲染器。


希望蜂巢能帮上忙,先谢谢了!


渲染器:


const electron = require("electron");

const ipc = require("electron").ipcRenderer;    


createBtn.addEventListener("click", (event) => {

ipc.send("path:get");

});


ipc.on("path:selected", function (path) {

console.log("Full path: ", path);

});

主要的


const ipc = require("electron").ipcMain;

const os = require("os");

const { dialog } = require("electron");


ipc.on("path:get", function (event) {

if (os.platform() === "linux" || os.platform() === "win32") {

    dialog.showOpenDialog(

        {

            properties: ["openFile"],

        },

        function (files) {

            if (files) win.webContents.send("path:selected", files[0]);

            console.log("SENT");

        }

    );

} else {

    dialog.showOpenDialog(

        {

            properties: ["openFile", "openDirectory"],

        },

        function (files) {

            if (files) win.webContents.send("path:selected", files[0]);

            console.log("SENT");

        }

    );

}

});


慕雪6442864
浏览 322回答 1
1回答

扬帆大鱼

我在某种帮助下弄明白了。因此,如果有人需要相同的程序,我会尝试解释我做了什么。所以,总的来说,我不得不添加一个 then,因为 showDialog 返回一个承诺if (os.platform() === "linux" || os.platform() === "win32") {    dialog        .showOpenDialog({            properties: ["openFile", "openDirectory"],        })        .then((result) => {            if (result) win.webContents.send("path:selected", result.filePaths);        })        .catch((err) => {            console.log(err);        });} else {    dialog        .showOpenDialog({            properties: ["openFile", "openDirectory"],        })        .then((result) => {            console.log(result.filePaths);            if (result) win.webContents.send("path:selected", result.filePaths);        })        .catch((err) => {            console.log(err);        });}});这将发回一个路径为 [0] 的数组在渲染器中,我忘记将事件添加为参数。ipc.on("path:selected", (event, path) => {  chosenPath = path;  console.log("Full path: ", chosenPath[0]);});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript