我用以下代码写了创建并写入的 文本文件 
      internal  bool SaveText(string textInfo, string path)
        {
            try
            { File.AppendAllText(path, textInfo + "\r\n", Encoding.GetEncoding("gb2312")); }
            catch (Exception err)
            {
             
                MessageBox.Show(err.Message);
                return false;
            }
            return true;
        }
  之后我想马上对该文件进行删除 用  
 FileInfo fileInfo = new FileInfo(filePath);
                try
                {
                    fileInfo.Delete();
                }
                catch(Exception err)
                {
                    MessageBox.Show(err.Message);
                }
 老提示文件被另一线程占用,删除不成功,请问怎么释放控制呢?弄了好久...郁闷ing

解决方案 »

  1.   

     fileInfo.Delete();
     fileInfo.close();
      

  2.   

    测试:
     File.AppendAllText("c:\\1.doc", "hahaha");
    File.Delete("c:\\1.doc");
    这样是成功的!没有出现线程占用的问题,你是否是在append了以后又做了什么占用方式的打开操作,然后没有关闭释放?
      

  3.   

    任何对文件的操作都是要关闭的,尤其是在写入流的时候,文件是不能删除的。只有将控制释放之后才可以。每一个写入操作应该都有Close()方法来使这个操作停止。
      

  4.   


    关闭进程也没有用,我用的是Abort()方法关闭,后来使用      GC.Collect()强制回收才解决的。
      

  5.   

    fileInfo根本就没有close 方法,别忽悠我撒