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 に答える