【发布时间】:2013-07-13 20:56:19
【问题描述】:
我正在使用 VS2012 和 Windows 8 创建一个简单的 Windows 应用程序。 有一个富文本框,用户应该在其中输入文本,当表单关闭时,它应该将富文本框的文本保存在一个文件中。但是,几乎总是应用程序抛出错误,指出“该进程无法访问该文件,因为它正被另一个进程使用” 代码如下
public Form1()
{
InitializeComponent();
try
{
richTextBox1.LoadFile("D:\\MyNotes\\MyNotes.rtf");
}
catch (Exception ex)
{
System.IO.File.Create("D:\\MyNotes\\MyNotes.rtf");
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
System.IO.StreamWriter SW = new System.IO.StreamWriter(
"D:\\MyNotes\\MyNotes.rtf", false, Encoding.ASCII);
SW.Write(richTextBox1.Text);
SW.Close();
//Even this does not work
// richTextBox1.SaveFile("D:\\MyNotes\\MyNotes.rtf");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
【问题讨论】:
-
@CodeCaster True,但此处提供了确切答案。关于为什么它真的是这样的细节,在这里。所以我认为这是更好地理解和实施
-
当您的问题被近距离投票为重复时,这意味着您的问题的原则已经在本网站的其他地方得到回答,即在您的问题中标记为重复。虽然环境可能因问题而异,但您并不是唯一一个致电
File.Create()并忘记关闭返回的句柄的人。 -
那么我应该删除这个问题吗?
-
不,只是等待它关闭。您的措辞或答案的措辞可能会帮助未来通过搜索到达这里的访问者。 :-)
标签: c#