从SaveFileDialog创建,写入和打开文本文件

时间:2012-09-05 13:57:23

标签: c# winforms savefiledialog

我正在显示一个SaveFileDialog,当单击OK时,我正在创建新文件,为其编写一些默认内容,然后尝试通过SaveFileDialog的OpenFile()方法打开它。但是,当我调用OpenFile()时,文件的内容将被删除。

SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "XML files (*.xml)|*.xml";
saveFileDialog.RestoreDirectory = true;

if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    // First Event Creates file and writes default content to it - works ok 
    NewFileCreated( this, new FileCreatedEventArgs() { Template = Template.BBMF, FilePath = saveFileDialog.FileName } );
    // Second Event clears file content as soon as saveFileDialog.OpenFile() called
    FileLoaded( this, new FileLoadedEventArgs() { FileStream = saveFileDialog.OpenFile() } );
}

有人可以解释为什么会发生这种情况以及我需要做些什么才能成功打开新创建的文件?

1 个答案:

答案 0 :(得分:4)

根据MSDN, SaveFileDialog.OpenFile()

  

<强>注意

     

出于安全考虑,此方法使用。创建一个新文件   选择名称并使用读/写权限打开它。这可能会导致   如果选择要保存的现有文件,则会意外丢失数据。   要在保留现有数据的同时将数据保存到现有文件,请使用   File类使用返回的文件名打开文件   FileName属性。