获取由应用程序打开的 SaveFileDialog 的处理程序
获取由应用程序打开的 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();
问题出现的原因是代码中使用了SaveFileDialog来打开文件保存对话框,但是应用程序并没有正确处理打开的对话框,导致无法保存文件。解决方法是使用FolderBrowserDialog来选择文件夹,然后通过dlg.SelectedPath获取选择的文件夹路径。
以下是解决方法的具体代码:
Microsoft.Win32.FolderBrowserDialog dlg = new Microsoft.Win32.FolderBrowserDialog(); Nullableresult = 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)