正在保存流。写入现有 .CSV 文件不会替换数据,只会添加到现有数据中。如何仅替换数据?



下面的代码用于保存CSV字符串,但是,如果我保存到现有的.CSV,它不会替换数据,而是只将新字符串添加到现有的数据中。我该如何补救?这是Stream.Write函数工作的固有特性,还是Excel和.CSV的特性?

SaveFileDialog dialog = new SaveFileDialog();
dialog.AddExtension = true;
dialog.Filter = "CSV Files (*.csv)|*.csv|All Files (*.*)|*.*";
dialog.FilterIndex = 1;
dialog.Title = "Save As";
dialog.InitialDirectory = "C:\";
dialog.CheckPathExists = true;
dialog.DefaultExt = ".csv";
dialog.ValidateNames = true;
if (dialog.ShowDialog() == DialogResult.OK)
{
    StreamWriter myStream = new StreamWriter(dialog.FileName, true);
    myStream.Write(//Function which returns a CSV-formmatted string//);
    myStream.Close();
    OpenFile(dialog.FileName);
}
StreamWriter myStream = new StreamWriter(dialog.FileName, false);

http://msdn.microsoft.com/library/36b035cb%28v=vs.100%29

第二个参数(bool append)描述得很好:

追加类型:System.Boolean确定是否将数据附加到文件中。如果该文件存在并且append为false,则会覆盖该文件。如果文件如果存在并且append为true,则将数据附加到文件中。否则,将创建一个新文件。

append设置为false,这样StreamWriter将覆盖文件,而不是将数据附加到文件中。

StreamWriter myStream = new StreamWriter(dialog.FileName, false);

new StreamWriter(dialog.FileName, true)中将true更改为false

当您键入函数调用时,智能会告诉您参数的名称,并且它可能会为您提供关于它们含义的工具提示。你应该注意

我相信,在默认情况下,简单地键入new StreaWriter(dialog.FileName)就会将append设置为false。

将正确的参数传递给构造函数:

new StreamWriter(
    path: path
    append: false);

相关内容

  • 没有找到相关文章

最新更新