6

在第一次运行时,我的程序在第一行写入一个 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();
}
4

2 回答 2

3

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

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

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

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

于 2012-10-28T09:13:33.147 回答
0

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

您想改用此构造函数并将append参数指定为true

using (StreamWriter sw = new StreamWriter("EntranceLog.csv", true))
{
    // write your file as normal
}
于 2012-10-28T09:16:22.020 回答