File.ReadAllBytes保持文件句柄打开

时间:2015-10-20 17:57:19

标签: c# file-io

我有这段代码,它将文件加载到RAM中,然后将它作为程序集加载到AppDomain(d)中:

var a = d.Load(File.ReadAllBytes(tmp));

问题在于,当我稍后尝试删除位于tmp的文件(现在只是使用文件资源管理器)时,我收到一条错误消息,指出该文件仍在我的程序中打开。我甚至尝试将using关键字与File.Open一起使用,但这似乎也无效。有人可以解释为什么会发生这种情况,以及如何解决它?

1 个答案:

答案 0 :(得分:0)

ReadAllBytes应该关闭文件作为其功能的一部分。听起来有些东西阻止它关闭,因此你无法删除。也许发生的异常需要被抓住。

以下是一个类似的问题,其解决方案可能会有所帮助: Unable to delete some files via System.IO.File in C# console app