绕过WPF应用程序中的保存对话框

本文关键字:保存 对话框 WPF 应用程序 绕过 | 更新日期: 2023-09-27 18:15:11

在使用SaveFileDialog类时,我试图绕过保存对话框。我希望能够写入文档,而不必提示用户决定是否要保存,文件应该在他们单击按钮时自动保存。

 SaveFileDialog saveFileDialog1 = new SaveFileDialog();
 saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"  ;
 saveFileDialog1.RestoreDirectory = true ;
 saveFileDialog1.InitialDirectory = @"C:'";
 if(saveFileDialog1.ShowDialog() == DialogResult.OK)
 {
     // Code to write the stream goes here.
 }

我已经尝试删除if语句以及使用…

saveFileDialog1.CreatePRompt = false;

似乎什么都不起作用…什么好主意吗?

绕过WPF应用程序中的保存对话框

我想你是想绕过覆盖提示对话框。

在这种情况下,你可以使用

saveFileDialog1.OverwritePrompt = false;

否则,你不需要SaveFileDialog,你可以保存你的流而不使用它

我找到了答案。我问的问题实际上是两个。第一个是如何绕过SaveFileDialog,我想使用SaveFileDialog,因为它可以记住它访问的最后一个文件夹,并在执行读取/保存时打开该文件夹。也就是说,我实现了这个…

Directory = System.AppDomain.CurrentDomain.BaseDirectory;

这将设置目录为我的可执行文件的位置。

接下来,我去掉了SaveFileDialog,直接写入文件,而不需要提示用户。

感谢所有的指示和想法!

最后的结果是…

Directory = System.AppDomain.CurrentDomain.BaseDirectory;
using(System.IO.StreamWriter file = new System.IO.StreamWriter(Directory, false))
{
    // File contents
}

如果你想保存,但你需要用户选择一个文件名,我会使用这个:

SaveFileDialog saveFileDialog1 = new SaveFileDialog();
//setup properties of Dialog
bool filenamepicked = false;
while (!filenamepicked)
{
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        //Save file
        filenamepicked = true;
    }
    else
    {
        MessageBox.Show("You have to use a file name.");
    }
}