0

以下代码用于保存 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);
}
4

4 回答 4

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

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

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

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

于 2012-07-11T14:25:44.320 回答
2

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

StreamWriter myStream = new StreamWriter(dialog.FileName, false);
于 2012-07-11T14:26:13.707 回答
0

new StreamWriter(dialog.FileName, true) 更改truefalse

Intellisence 会在您键入函数调用时告诉您参数的名称,它可能会为您提供有关它们含义的工具提示。你应该注意这一点

我相信只需键入new StreaWriter(dialog.FileName) 默认情况下会将 append 设置为 false 。

于 2012-07-11T14:27:15.180 回答
0

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

new StreamWriter(
    path: path
    append: false);
于 2012-07-11T14:27:20.273 回答