如何删除刚上传到服务器但仍被服务器锁定的文件?

时间:2010-08-31 11:40:50

标签: c# .net asp.net .net-3.5 c#-3.0

我的系统将文件上传到IIS服务器,然后我操作它们,在完成所有操作后,我需要删除原始文件,问题是IIS“抓取”文件而我无法删除它,当我关闭procces我可以从服务器手动删除它,但直到我关闭procces我甚至不能这样做...

我正在使用:File.Delete(Server.MapPath(OriginalFileVirtualPath));删除文件。

P.S。现在我正在使用.net服务器,而不是一个完整的活动IIS,但我不认为那个问题就在那里......它甚至会让我知道当我将文件上传到服务器时,它赢了让我们删除它,但我确信有一个解决方法......

10x: - )

2 个答案:

答案 0 :(得分:4)

您只需关闭文件流即可。之后,您可以使用File.Delete()方法。

using () { }块内进行操作并在使用块后进行删除是一种很好的做法:

using (FileStream stream = File.Open(filePath, FileMode.Open))
{
    // Manipulation stuff
}
File.Delete(filePath);

答案 1 :(得分:3)

你还记得在完成操作后关闭文件吗?

如果在尝试删除文件时文件仍处于打开状态,则可能会失败。 (我必须仔细检查文档)。但是,在关闭应用程序之前,无法关闭文件肯定会导致您观察到IIS将文件视为锁定的症状。