Streamreader使用什么流程?

时间:2013-03-27 23:33:40

标签: dispose streamreader

我用

制作了一个简单的程序
StreamReader sr = new StreamReader(File.OpenRead(dlg.FileName));                
txtBox1.Text = sr.ReadToEnd();

忘了放

sr.Dispose();

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

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

2 个答案:

答案 0 :(得分:2)

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

为了避免'遗忘'将来使用using语句处理对象,以实现IDisposableStreamReader所做的事情)。您的代码看起来像

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

答案 1 :(得分:0)

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