以下代码用于保存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);
}
答案 0 :(得分:4)
StreamWriter myStream = new StreamWriter(dialog.FileName, false);
http://msdn.microsoft.com/library/36b035cb%28v=vs.100%29
第二个参数(bool append
),有很好的描述:
追加 键入:System.Boolean 确定是否将数据附加到文件。如果文件存在且append为false,则覆盖该文件。如果是文件 exists和append为true,数据将附加到文件中。 否则,将创建一个新文件。
答案 1 :(得分:2)
将append
设置为false,这样,StreamWriter
将覆盖该文件,而不是将数据附加到该文件。
StreamWriter myStream = new StreamWriter(dialog.FileName, false);
答案 2 :(得分:0)
在new StreamWriter(dialog.FileName, true)
中将true
更改为false
Intellisence将告诉您在键入函数调用时命名的参数,它可能会为您提供有关其含义的工具提示。你应该注意那个
我相信只需输入new StreaWriter(dialog.FileName)
,默认情况下就会将其设置为false。
答案 3 :(得分:0)
将适当的参数传递给constructor:
new StreamWriter(
path: path
append: false);