我用下面的程序来新建一个b.txt,然后用StreamReader来读取里面的数值,可是当执行到StreamReader那一行时就跳出来,说另一个进程正在使用该文件,我该怎样处理呢?
 FileInfo file1=new FileInfo(@"f:\b.txt");
 
if(!file1.Exists)
{
   file1.Create();
}    
StreamReader read=new StreamReader(@"f:\b.txt",System.Text.Encoding.Default);
string strText=read.ReadToEnd();
read.Close();
string [] ss=strText.Split('\n');
string s=ss[ss.Length-2];
string [] d=s.Split(' ');
                            this.textBox1.Text=d[0];
this.textBox2.Text=d[1];
this.textBox3.Text=d[2];

解决方案 »

  1.   

    因为你上次读完,没有关闭file1.close();
      

  2.   

    应该时你得file1未及时关闭!或者你得文本文件正在编辑!!
      

  3.   

    这个问题我也遇到了,我的解决办法是最外面写个死循环(while(true)),里面用try和catch()捕捉,让程序无限循环直到另一个进程结束占用这个文件为止,然后break一下。估计这是C#后台清理内存程序或是windows自身内存操作的一些问题。
      

  4.   

    Create方法调用后会返回一个打开的FileStream,你关闭掉就可以了if(!file1.Exists)
    { file1.Create().Close();
    }