文件删除不起作用
本文关键字:不起作用 删除 文件 | 更新日期: 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;
}