3

我正在显示一个 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() } );
}

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

4

1 回答 1

4

根据MSDN,SaveFileDialog.OpenFile()

警告

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

于 2012-09-05T14:02:52.457 回答