【问题标题】:Is there any way to show a "Select folder" only dialog on macos?有没有办法在 macOS 上显示“选择文件夹”对话框?
【发布时间】:2021-06-14 19:11:11
【问题描述】:

我需要提供一个功能来使用电子将一堆文档批量导出到 blazor 应用程序中的文件夹。我使用以下代码显示“另存为”对话框:

private async Task<string> _ShowSaveDialog(string title, string extensionName, string extension)
{
    var mainWindow = Electron.WindowManager.BrowserWindows.First();
    var options = new SaveDialogOptions
    {
        Title = title,
        Filters = new FileFilter[]
        {
            new FileFilter { Name = extensionName, 
                Extensions = new string[] {extension },
                
            }
        }
    };
    var filePath = await Electron.Dialog.ShowSaveDialogAsync(mainWindow, options);

    return filePath;
}

这在 macos 上显示如下:

这不符合我的目的,因为我不想给出文件名,因为我会在批量导出文档时生成它们。

在阅读了所有电子文档后,我还没有看到任何方法来实现这一点。这甚至可能吗? macos上没有这种对话框是不是很奇怪?

【问题讨论】:

    标签: macos electron blazor blazor-server-side


    【解决方案1】:

    如果我理解您的问题,您可能希望使用: dialog.showOpenDialog([browserWindow, ]options) 将“openDirectory”作为选项属性之一。这意味着只能选择目录。

    dialog.showOpenDialog(mainWindow, {
      properties: ['openDirectory']
    }).then(result => {
      console.log(result.canceled)
      console.log(result.filePaths)
    }).catch(err => {
      console.log(err)
    })
    

    【讨论】:

    • 我会将其标记为正确。我使用的是electron.net而不是elector.js,抱歉我在添加标签时拼错了。但你让我走上了正轨。谢谢!
    猜你喜欢
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2012-08-23
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多