删除文件和错误无法访问该文件,因为它正被另一个进程使用

时间:2014-03-11 08:50:29

标签: c# io

我使用此代码删除图像。它第一次正常工作,但第二次出现此错误:

the process cannot access the file because it is being used by another process.

if (System.IO.File.Exists(Server.MapPath("~" + Request["src"])))
{
    System.IO.File.Delete(Server.MapPath("~" + Request["src"]));
    System.IO.File.Delete(Server.MapPath("~" + Request["src"].Replace("Product\\","Product\\ProductThumbImg\\")));
    System.IO.File.Delete(Server.MapPath("~" + Request["src"].Replace("Product\\", "Product\\ProductPreview\\")));
}

2 个答案:

答案 0 :(得分:1)

我也有这个问题,你应该在File.Delete(...)代码行之前尝试以下方法。它看起来应该是这样的:

System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.IO.File.Delete(Server.MapPath("~" + Request["src"]));

希望它有所帮助。

答案 1 :(得分:0)

您需要找到正在使用该文件的进程并将其关闭,否则您将无法删除该图像。如果您在确定使用映像的进程时遇到问题,请尝试使用Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653)。