书写行文本文件帮助,visual c#

时间:2016-03-01 11:28:55

标签: c# listbox

    private void addServerButton_Click(object sender, EventArgs e)
    {
        serverListBox.Items.Add(this.serverTextBox.Text);

        string path = @"C:\\Public Key Pin\UserServerData.txt";
        using (StreamWriter sw = File.CreateText(path))
        {

            sw.Write(this.serverTextBox.Text);
        }
    }

基本上我试图将其添加到服务器' ListBox(使用文本框和按钮)保存在文本文件中,以便用户可以“...负载'第二次使用应用程序时服务器列表,但是写入列表框的内容会覆盖文本文件中的上一项,因此当用户加载服务器列表(serverListBox)时,它只显示一个项目(用户添加到ListBox的最后一项)。

如何制作它以便在文本文件中自动创建一个新行以阻止项目被覆盖?

3 个答案:

答案 0 :(得分:1)

使用

private void addServerButton_Click(object sender, EventArgs e)
{
    serverListBox.Items.Add(this.serverTextBox.Text);

    string path = @"C:\\Public Key Pin\UserServerData.txt";
    File.AppendAllText(path, this.serverTextBox.Text+"\n");
}

如果要加载savefile的所有行:

// Add all lines to ListBox
serverListBox.Items.AddRange(File.ReadAllLines(@"C:\\Public Key Pin\UserServerData.txt"));

如果您只想要最后一行:

var lines = File.ReadAllLines(@"C:\\Public Key Pin\UserServerData.txt");
// Add last line to ListBox:
if (lines.Length > 0) serverListBox.Items.Add(lines[lines.Length - 1]);

答案 1 :(得分:0)

使用sw.AppendText(this.serverTextBox.Text);代替

答案 2 :(得分:-1)

您应该使用:

        string path = @"C:\\Public Key Pin\UserServerData.txt";
    using (StreamWriter sw = File.CreateText(path))
    {
        sw.WriteLine(this.serverTextBox.Text);
    }