我使用此代码删除图像。它第一次正常工作,但第二次出现此错误:
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\\")));
}
答案 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)。