你好这是我正在尝试的代码: 如果文件存在,则附加到该文件,否则创建一个新文件。我需要逐行写数据
FileExists = File.Exists(NewFileName);
if (FileExists = false)
{
using (fs =new FileStream(NewFileName, FileMode.Create))
{
sw = new StreamWriter(fs);
MessageBox.Show(Record);
sw.WriteLine(Record);
fs.Close();
}
}
else
{
using (fd = new FileStream(NewFileName, FileMode.Append))
{
sw = new StreamWriter(fd);
MessageBox.Show(Record);
sw.WriteLine(Record,true);
}
}
}
答案 0 :(得分:1)
这是因为您的代码永远不会进入FileExists = false
分支:这是一项任务,而非比较。
您可以添加额外的=
以使其成为比较(即使其成为FileExists == false
),但检查条件相反的惯用方法是使用一元运算符!
。
按如下方式更改条件以使其正常工作:
if (!FileExists)
...
此外,您忘记关闭或刷新StreamWriter
。
您可以使用三元运算符统一两个分支,如下所示:
using (fs =new FileStream(NewFileName, FileExists ? FileMode.Append : FileMode.Create)) {
sw = new StreamWriter(fs);
MessageBox.Show(Record);
sw.WriteLine(Record);
sw.Close(); // <<== Add this line
fs.Close();
}