0

关于stackoverflow上的大量信息StreamReader而不是锁定文件,但是对话框会以某种方式改变吗?我不得不说不,但也许我没有正确使用它,它正在锁定文件?我的代码是:

private void read1()
{
    TextReader tr = new StreamReader(@"T:\\testfile");
    string input = null;
    while ((input = tr.ReadLine()) != null)
    {
        if (input.Contains("test"))
        {
            MessageBox.Show(input);
        }
    }

}
4

1 回答 1

1

我认为您需要使用 FileStream 来做到这一点。

此外,您不会关闭您的流或在其上调用 Dispose()。您应该使用using声明来确保它发生。以下代码应确保文件未锁定。

private void read1()
{
    using (var fs = new FileStream(@"T:\testfile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) {
        using (var tr = new StreamReader(fs)) {
            string input = null;
            while ((input = tr.ReadLine()) != null)
            {
                if (input.Contains("test"))
                {
                    MessageBox.Show(input);
                }
            }
        }
    }    
}
于 2013-08-17T04:19:24.027 回答