获取由应用程序打开的 SaveFileDialog 的处理程序

10 浏览
0 Comments

获取由应用程序打开的 SaveFileDialog 的处理程序

我正在尝试获取一个由我的WPF应用程序的按钮点击打开的SaveFileDialog的处理程序。我在网络上找到的所有示例实际上都是创建一个新的,但我需要处理已经打开的。我该如何做到这一点?

下面的代码总是创建一个新的SaveFileDialog:

        dlg.DefaultExt = "pdf"; // 默认文件扩展名
        dlg.Filter = "PDF 文件 (*.pdf)|*.pdf|所有文件 (*.*)|*.*"; // 按扩展名过滤文件
        dlg.FilterIndex = 2;
        dlg.InitialDirectory = "C:\\Users\\Reema.Sinha\\Downloads";
        Manager.Current.DialogMonitor.AddDialog(dlg);
        DownloadSaveButton.Click();
        DialogResult result = dlg.ShowDialog();

0
0 Comments

问题出现的原因是代码中使用了SaveFileDialog来打开文件保存对话框,但是应用程序并没有正确处理打开的对话框,导致无法保存文件。解决方法是使用FolderBrowserDialog来选择文件夹,然后通过dlg.SelectedPath获取选择的文件夹路径。

以下是解决方法的具体代码:

Microsoft.Win32.FolderBrowserDialog dlg = new Microsoft.Win32.FolderBrowserDialog();
Nullable result = dlg.ShowDialog(); // Show folder browser dialog
if (result == true)
{
    // Get selected folder path
    string folderPath = dlg.SelectedPath;
    // Save document to the selected folder
    // ...
}

希望这篇文章对您有帮助。

参考链接:

- [SaveFileDialog that permits selection of folder](https://stackoverflow.com/questions/24695513)

- [WPF select folder dialog](https://stackoverflow.com/questions/4007882)

- [Open directory dialog](https://stackoverflow.com/questions/1922204)

0