我编写了一个将数据表保存为CSV文件格式的函数。但问题是函数在调用函数时删除旧数据并写入新数据。我只想保留旧数据并写入文件的新数据。我怎样才能做到这一点?我的职责是:
public void CreateCSVFile(DataTable dt, string strFilePath, bool isFirstRowHeader)
{
StringBuilder sb = new StringBuilder();
if (isFirstRowHeader == true)
{
var columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray();
sb.AppendLine(string.Join(",", columnNames));
}
foreach (DataRow row in dt.Rows)
{
var fields = row.ItemArray.Select(field => field.ToString()).ToArray();
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText(strFilePath, sb.ToString());
}
答案 0 :(得分:1)
File.AppendAllText
代替File.WriteAllText
会附加到现有CSV文件的末尾。当然,如果文件已经存在,你需要避免写出标题。
答案 1 :(得分:0)
尝试使用StreamWriter,并将其append参数设置为true。
string filename = @"c:\test.csv";
StringBuilder sb = new StringBuilder();
sb.Append("test1");
sb.Append("test2");
StreamWriter sw = new StreamWriter(filename, true);
sw.Write(sb.ToString());
sw.Close();
这应该可以解决问题。