我的应用程序使用了一个文件,并在使用后尝试删除它。但是,由于第三方库的原因,我的应用无法释放该文件的文件句柄,因此无法删除该文件,因为该文件由进程本身使用。我试着调用process.start()来启动一个单独的进程,它唯一的工作就是删除前面提到的文件。我正在使用.net 4.0。然而,新进程似乎继承了文件句柄,也无法删除该文件。
有什么建议吗?
为什么不同的进程能够删除您自己的进程无法删除的文件?这不是它的工作方式。如果是这样的话,您总是可以通过启动一个新流程来规避访问限制。
您必须关闭句柄才能删除文件。
如果无法使库正确关闭句柄,则可以启动包含所有库工作的子进程。完成后,你离开孩子。作为进程清理的一部分,句柄将关闭。