我有一个Winform控件来编写笔记,笔记的内容会定期上传到服务器。 我需要创建一个本地文件作为备份来保存注释的内容。 当我在记事本中键入文本时,内容保留在记事本中并保存到本地文本文件中。但是,当我在笔记框中输入更多文本时,以前的内容以及新的内容都会附加到本地文件中。 如何确保仅将最新内容附加到本地文件?如果我清除便笺盒中的内容,则不会有任何内容登录到服务器。
private void btnNote_Click(object sender, EventArgs e)
{
Note noteFrm = new Note();
//set Note Text
noteFrm.NoteText = _timeCard.NoteText;
if (noteFrm.ShowDialog() == DialogResult.OK)
{
//Save notes locally as well
string path = @"C:\QB Notes\";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
string projname = this._timeCard.Project.ProjectName.TrimEnd()+".txt";
string fileloc = path + projname;
// FileStream fs = null;
if (!File.Exists(fileloc))
{
using (TextWriter txt = new StreamWriter(fileloc))
{
// TextWriter txt = new StreamWriter(fileloc);
txt.Write(noteFrm.NoteText + Environment.NewLine);
txt.Close();
}
}
else if (File.Exists(fileloc))
{
using (var txt = new StreamWriter(fileloc, true))
{
txt.BaseStream.Seek(0, SeekOrigin.End);
txt.Write(noteFrm.NoteText + Environment.NewLine);
txt.Close();
}
}
//noteFrm.NoteText="";
//get Note Text
_timeCard.NoteText = noteFrm.NoteText;
Utils.LogManager.write("New Note Text: " + noteFrm.NoteText);
}
}
答案 0 :(得分:1)
如果您希望文件始终与文本框中的内容匹配,那么建议您将整个if (!File.Exists(fileloc))
块替换为:
File.WriteAllText(fileloc, noteFrm.NoteText + Environment.NewLine);
这将在需要时创建文件,打开文件,将所有内容替换为文本框中的内容,然后关闭文件。