频繁删除临时文件导致系统卡死?!
我写的一个服务需要一直跑在服务器上,这个服务是用来执行一些特定的任务,每次执行任务的时候,都要生成大量的临时文件,数量在1万个以内,每个文件几百K,每次执行完任务,程序自动清除data文件夹下面的所有临时文件,每次执行任务时间大概是2分钟左右,但是经测试发现,每次系统在跑上几天以后,会卡死在清空文件夹这个函数上面,同时从资源管理器中打开这个文件夹时,Explorer也卡死,而且一旦程序卡死,从任务管理器中强制结束任务也结束不了,怎么关都关不了,只有重启服务器。
下面是清空文件夹的代码,大家帮我看看有什么问题么?
void CleanDir(const char *path)
{
char findstr[1200], fullname[1200];
strcpy(findstr, path);
strcat(findstr, "*.*");
WIN32_FIND_DATA ffd;
HANDLE h = FindFirstFile(findstr, &ffd);
if(h == INVALID_HANDLE_VALUE)
return ;
sprintf(fullname, "%s%s", path, ffd.cFileName);
DeleteFile(fullname);
while(FindNextFile(h, &ffd))
{
sprintf(fullname, "%s%s", path, ffd.cFileName);
DeleteFile(fullname);
}
FindClose(h);
}