删除存放在硬盘上的文件有有关问题

删除存放在硬盘上的文件有问题
请问:
     文件名存放在数据库里,通过查询数据库(针对过期的视频文件,存放时间大于1天的删除掉)后,获取文件的路径名,再删除该文件。现在出现的问题是有些文件删除不掉,执行下来后不能全部删除。
.
.
.
select  recordPath from t_record_file where  enable = 1 and TIMESTAMPDIFF(DAY,startTime,NOW()) > 1"
::DeleteFileA(sDelPath.c_str());
printf("删除过期文件:%s,结果:%s\r\n",sDelPath.c_str(),suc ?"成功":"失败");

sDelPath =  gsl::JX_StrReplace(sDelPath,".wmv","");
suc=::DeleteFileA(sDelPath.c_str());

printf("删除过期文件:%s,结果:%s\r\n",sDelPath.c_str(),suc ?"成功":"失败");;

.
.
.
从逻辑上及代码都是没问题的,会有什么问题导致删除失败呢?

------解决方案--------------------
1 是用循环做删除的么? 没看到MoveNext
2 GetLastError() 看返回值
------解决方案--------------------
是删除出错,还是判断出错?
------解决方案--------------------
文件删除不了,是不是文件正在被使用,如果是的话尝试关闭正在使用该文件的句柄,然后再做删除操作。
------解决方案--------------------
文件正在使用,或者其它原因,GetLastError 看看返回值