C# 如何将文本框的内容保存到文件
我环顾四周,找到了几个类似问题的答案,但不知怎么的,这对我并不适用。 我正在尝试将文本框的内容保存到用户提示文件中C# 如何将文本框的内容保存到文件,c#,C#,我环顾四周,找到了几个类似问题的答案,但不知怎么的,这对我并不适用。 我正在尝试将文本框的内容保存到用户提示文件中 private void btnSave_Click(object sender, EventArgs e) { Stream myStream; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "txt files (*.txt)|*.txt|
private void btnSave_Click(object sender, EventArgs e)
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
File.WriteAllText(saveFileDialog1.FileName, rtbIncoming.Text);
myStream.Close();
}
}
}
用户提示按预期弹出,生成的文件没有任何内容。您不需要自己打开文件流。File.writealText可以为您完成所有这些。所以这就足够了:
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
File.WriteAllText(saveFileDialog1.FileName, rtbIncoming.Text);
我猜您的代码会导致一个空文件,因为您打开了一个不用于写入的单独流,在调用WriteAllText之后关闭并刷新了该流。您可以打开两次该文件。只需完全删除内部if和myStream,它就会工作。为什么要使用SaveFileDialog.OpenFile方法?这是阻止向文件写入文本。我现在意识到了这一点,将其更改为下面的答案是可行的。您没有得到System.IO.IOException抛出的异常吗?它应该告诉您,另一个进程正在访问文件不,我没有,除了文件是空的以外,其他一切都正常工作