文件删除不起作用

本文关键字:不起作用 删除 文件 | 更新日期: 2023-09-27 18:21:56

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

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

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

如何解决此问题?

文件删除不起作用

文件创建的句柄有时无法释放。尝试调用

GC.Collect();
GC.WaitForPendingFinalizers();

删除之前。

还可以看看这个SO问题:删除另一个进程正在使用的文件。

编辑:

除了awoid调用GC.Collect()(Boas-Enker指出了原因)之外,您可能需要在循环中等待文件,如下所示。

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

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

//your_variable = some_value; }