electron open default file browser window without returning anything

1k views Asked by At

I am working on an electron app that can open a directory file picker and return a value, like how this question does it: Electron - Open Folder Dialog

ipcMain.on('selectDirectory', function() {

    dir = dialog.showOpenDialog(mainWindow, {

        properties: ['openDirectory']

    });

});

But I cannot find a way to open the folder dialog without returning anything, like if I as a user want to open the location of a file. I don't want to lock my program by waiting for a selected file/folder. I just want a window to a specific location to open on a user's machine through my cross-platform electron app (mac/win/linux)

1

There are 1 answers

0
midnight-coding On

Electron's dialog.showOpenDialog() returns a promise, so it would need to be handled as such.

ipcMain.on('selectDirectory', function() {

    // Define the options.
    let options = {
        title: "My title",
        properties: ['openDirectory'],
        defaultPath: "/absolute/path/to/open/at"   // Optional.
    }

    // Show the open (folder) dialog.
    dialog.showOpenDialog(mainWindow, options)
        .then((result) => {
            // Bail early if user cancelled dialog.
            if (result.canceled) { return }

            // Get the selected path.
            let path = result.filePaths[0];

            // More processing...
        })
});

If you wish to set the inital path the dialog opens at then set the defaultPath property.

The path variable will give you the path the user selected in the dialog.