我的系统将文件上传到IIS服务器,然后我操作它们,在完成所有操作后,我需要删除原始文件,问题是IIS“抓取”文件而我无法删除它,当我关闭procces我可以从服务器手动删除它,但直到我关闭procces我甚至不能这样做...
我正在使用:File.Delete(Server.MapPath(OriginalFileVirtualPath));
删除文件。
P.S。现在我正在使用.net服务器,而不是一个完整的活动IIS,但我不认为那个问题就在那里......它甚至会让我知道当我将文件上传到服务器时,它赢了让我们删除它,但我确信有一个解决方法......
10x: - )
答案 0 :(得分:4)
您只需关闭文件流即可。之后,您可以使用File.Delete()
方法。
在using () { }
块内进行操作并在使用块后进行删除是一种很好的做法:
using (FileStream stream = File.Open(filePath, FileMode.Open))
{
// Manipulation stuff
}
File.Delete(filePath);
答案 1 :(得分:3)
你还记得在完成操作后关闭文件吗?
如果在尝试删除文件时文件仍处于打开状态,则可能会失败。 (我必须仔细检查文档)。但是,在关闭应用程序之前,无法关闭文件肯定会导致您观察到IIS将文件视为锁定的症状。