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