文件删除不起作用

时间:2015-11-13 10:24:18

标签: c# asp.net

我编写了一个从其位置删除文件的函数。代码如下所示:

if (File.Exists(strPath + "/FLV/" + flvvideoname))
{
    File.Delete(strPath + "/FLV/" + flvvideoname);
}

'strPath'是目录的路径。代码执行后,文件并不总是被删除。反复运行相同的代码将删除该文件。当我解决此问题时,断点不会超过文件删除行,我也没有看到任何错误。如果断点使其超过文件删除行,则表示文件已被正确删除。

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

有时可能无法释放文件创建的句柄。尝试拨打

GC.Collect();
GC.WaitForPendingFinalizers();
删除前

另请查看此SO问题:Delete a file being used by another process

编辑:

除了调用GC.Collect()之外(由于Boas Enker指出的原因),您可能希望在循环中等待文件 - like this

答案 1 :(得分:0)

我确定问题不在文件删除中。可能是当您从数据库中检索Filename或动态设置某个变量时,您不是在第一页加载中执行此操作,而是在回发时执行此操作。因此,如果要动态检索文件名,请执行下一步:

if (!IsPostBack){//function for retrieving data from database

//your_variable = some_value; }