0

我做了一个简单的程序

StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName));                
txtBox1.Text = sr.ReadToEnd();

忘了放

sr.Dispose();

现在,当我尝试运行程序并打开一个文件时,我收到 IOException is unhandled 错误消息,上面写着“该进程无法访问该文件,因为它正被另一个进程使用。” 所以我的问题是,有人知道它使用的是什么过程吗?我希望能够在任务管理器中找到它并结束它,而不是编写一堆异常处理代码,因为这只是我用来练习的程序。

我试图打开的文件是 MyDocuments 中的一个 txt 文件。

4

2 回答 2

2

使用该文件的进程是打开它的进程,如果您从 Visual Studio 运行它,则很可能是 .vshost.exe。

为了避免“忘记”将来使用using语句处理对象来实现任何实现IDisposableStreamReader确实如此)。你的代码看起来像

using(StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName)))
{
    txtBox1.Text = sr.ReadToEnd();
}
于 2013-03-31T02:56:50.253 回答
0

当我使用流读取器查找文件中文本的结尾时,我遇到了同样的错误,因此我可以使用 writeline 方法在文件中的文本之后添加新文本。无论如何,我的文档在开发方面存在可访问性问题。尝试将 .txt 放入其他位置,可能是 /temp 文件夹?

于 2013-04-04T19:48:29.443 回答