C# 语言,建立的windows application创建了一个OpenFileDialog类, 并用该类随便打开一个文件(例如C:\a\a.txt),没有做任何处理,然后释放该类,代码如下        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            openFileDialog1.Dispose();
        }不明白何故导致,指定的文件(a.txt)可以进行文件处理,例如我重命名该文件,但是该指定文件的父文件夹也就是a那个文件夹,如果重命名便会导致进程被使用无法修改的情况,释放openfiledialog没有效果,用GC强制回收也不行,请达人指教,如何才能完全释放掉openfiledialog对该进程的占用曾测试过,如果换一个不同路径的文件原来的路径的文件夹便可以修改

解决方案 »

  1.   

    应该不会有这个问题
    openFileDialog只是获得了文件的路径,并没有真正打开文件,打开文件还是得写别的代码实现
      

  2.   

    我也奇怪啊,也很纳闷有可能有这种事吗...所以把代码精简到这么点, 该代码只是在一个窗体上创建一个button对象然后在button对象的click事件中写入1楼的代码,运行的结果是单击按钮打开一个文件,打开之后去重命名文件的父文件夹就是进程被占用的错误,如果换个不同路径的文件,就可以了,除了认为是OpenFileDialog的问题,实在想不到还有什么原因...无助中..............
      

  3.   

    我也遇到了同样的问题,用OpenFileDialog选择文件,文件所在的目录就无法删除了,提示文件正在被另外一个人或程序使用,有人能帮忙解决一下吗?
      

  4.   

    今天也碰到这个问题了,试了一下,可以解决。
    把OpenFileDialog的RestoreDirectory属性设为true
      

  5.   

    感谢xstong1982,实在太强了。
    这个问题,把我折腾了差不多两天了!!
    可以如期完成项目了,好耶……