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

时间:2015-09-30 12:15:38

标签: c# .net wpf

我在使用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;

似乎没什么用......有什么想法吗?

3 个答案:

答案 0 :(得分:0)

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

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

saveFileDialog1.OverwritePrompt = false;

否则,您不需要SaveFileDialog,您可以在不使用它的情况下保存您的信息流。

答案 1 :(得分:0)

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

strtok()

这会将Directory设置为我的可执行文件的位置。

接下来,我摆脱了SaveFileDialog,只是在没有提示用户的情况下写入文件。

感谢所有的指示和想法!

最终结果......

Directory = System.AppDomain.CurrentDomain.BaseDirectory;

完全符合我的需要。

答案 2 :(得分:-1)

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

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.");
    }
}