2016-04-20 71 views
-1

一切工作,直到我註冊一個新用戶,然後單擊「保存」它覆蓋文本文件中的新信息與新信息,我想添加一個新行並開始再次添加內容數組。我知道有一個「追加」功能,但我已經嘗試了很多東西,似乎無法使用我目前寫入文件的方式。如何將文本追加到我的文件,以便它添加新內容而不是覆蓋

private async void button1_Click(object sender, EventArgs e) 
    { 
     string[] contents = new string[4]; 
    contents[0] = "Name: " + txtName.Text; 
    contents[1] = "Address: " + txtAddress.Text; 
    contents[2] = "Phone: " + txtPhone.Text; 
    contents[3] = "Blood Type: " + cmbBloodType.SelectedItem.ToString(); 

    System.IO.File.WriteAllLines(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", contents); 

    } 
+0

我試圖使用附加功能,什麼也沒有工作,所以我回到它什麼工作寫入文件1次,但現在與我有什麼我只是不能似乎追加新的信息,並且我假設它是一些令人難以置信的簡單 – user3485895

回答

1

我想這是因爲你的內容是一個數組,所以你必須在一個字符串中加入該陣列,如:

System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", string.Join(Environment.NewLine, contents)); 
+0

就是這樣!萬分感謝 – user3485895

1

您試過File.AppendAllText()? 下面是一個例子:

File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", "content" + Environment.NewLine); 
+0

不,但我99%肯定我不能做到這一點這種方式,因爲有雙引號內容使我的「文本」即時通訊文件 – user3485895

+0

@ user3485895這僅僅是一個例子。第二個參數是你想要追加到文件的任何文本,在你的情況下是「內容」。 –

0

編輯代碼:當你去保存文件,請嘗試:

private async void button1_Click(object sender, EventArgs e) 
{ 
    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); 
    stringBuilder.AppendLine("Name: " + txtName.Text); 
    stringBuilder.AppendLine("Address: " + txtAddress.Text); 
    stringBuilder.AppendLine("Phone: " + txtPhone.Text); 
    stringBuilder.AppendLine("Blood Type: " + cmbBloodType.SelectedItem.ToString()); 

    System.IO.File.AppendAllText(@"C:\Users\Ben\Documents\C#\Final\Bloodbank\BloodBank\bin\Debug\Bloodbank.txt", stringBuilder.ToString() + Environment.NewLine); 
} 

這應該追加文本文件的末尾。官方文檔可以在這裏找到:https://msdn.microsoft.com/en-us/library/ms143356(v=vs.110).aspx

希望這有助於!

+0

我沒有收到任何錯誤時啓動程序與您的建議,但當我點擊「註冊」這是什麼顯示在文本文件「System.String []」,你會有絲毫的想法,爲什麼它是保存而不是我的文本框的內容? – user3485895

+0

要做的最好的事情是把所有東西放在一個'StringBuilder'中。我要更新我的答案以反映這一點。 –

相關問題