我的应用程序只是从剪贴板中获取文本并将其设置为列表框,我需要保存下一个午餐的列表框项目我已经使用此代码
StreamWriter SaveFile = new StreamWriter(sPath);
numlastline = listBox1.Items.Count-1;
SaveFile.WriteLine(listBox1.Items[numlastline]);
SaveFile.ToString();
SaveFile.Close();
但它只保存最后一个剪辑到文本并删除以前的剪辑
尝试使用File.AppendText附加到文件:
using (StreamWriter SaveFile = File.AppendText(sPath))
{
SaveFile.WriteLine("hello");
}
在线
SaveFile.WriteLine(listBox1.Items[numlastline]);
你只通过一个元素listBox1.Items[numlastline]
。要传递所有元素,您可以使用循环
StreamWriter SaveFile = new StreamWriter(sPath);
foreach (var item in listBox1.Items)
{
SaveFile.WriteLine(item);
}
SaveFile.ToString();
SaveFile.Close();
您必须遍历项目并将它们全部写入文件。另外,为了消除文件的打开和关闭,我鼓励使用using
来处理所有这些问题。此外,首先创建FileStream
可让您更好地控制如何打开文件。
using (FileStream fs = new FileStream(sPath, FileMode.Create, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs))
{
foreach (var item in listBox1.Items)
{
sw.WriteLine(item);
}
}
}