如何在csv文件的下一个开头的下一行写?

时间:2012-10-28 09:10:02

标签: c# winforms csv line

首次运行时,我的程序写入第一行的csv文件, 但是,当我在第二个......第三个时间运行我的程序时,它会在第一行运行。 我怎么能纠正它?

我想输入所有进入我程序的CSV文件。

代码如下:

private void WriteToCsvFile()
{
    var us = users.ElementAt(0);
    string names = "Number',";
    string userAnswer = (us.userName + ",");
    foreach (string ss in user)
    {
        string str = Path.GetFileName(ss);
        names = names + str + ",";
    }
    foreach (string ans in us.answer)
    {
        userAnswer = userAnswer + ans + ",";
    }

    using (StreamWriter sw = new StreamWriter("EntranceLog.csv"))
    {
        sw.WriteLine(names);
        sw.WriteLine(userAnswer);

    }

    this.Close();
}

2 个答案:

答案 0 :(得分:3)

在构造函数中添加true参数:

using (StreamWriter sw = new StreamWriter("EntranceLog.csv", true))

名为append的第二个参数控制是否应覆盖或附加现有文件。 MSDN州:

  

true将数据附加到文件中; false覆盖该文件。如果指定的文件不存在,则此参数无效,构造函数将创建新文件。

答案 1 :(得分:0)

每次运行时,您正在创建一个具有相同名称的新文件覆盖旧文件。这是您正在使用的特定构造函数的默认行为。

您想要使用this constructor,并将append参数指定为true

using (StreamWriter sw = new StreamWriter("EntranceLog.csv", true))
{
    // write your file as normal
}