下面的代码用于保存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);