2012-10-28 290 views
5

第一次運行時,我的程序在第一行寫入一個csv文件, 但是,當我在第二個..第三次運行我的程序時,它運行在第一行.. 怎麼能我糾正它?如何在下一行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(); 
} 

回答

3

添加true參數在構造:

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

名爲append控制現有的文件是否應被覆蓋或附加的第二個參數。 MSDN陳述:

true將數據追加到文件; false覆蓋文件。如果指定的文件不存在,則此參數不起作用,並且構造函數將創建一個新文件。

+0

感謝大家的幫助! –

0

每次運行時,都會創建一個具有相同名稱的新文件覆蓋舊文件。這是您正在使用的特定構造函數的默認行爲。

你想用this constructor而不是和true指定append參數:

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