//从他的名称可以看出来,其实这是删除一个文件夹,所以会把文件夹下面的所有文件都删除掉
//这里采用递归调用的方法
BOOL CFile4Dlg::DeleteDirectory(char *sDirName)
{
CFileFind tempFind;
char sTempFileFind[200] ;
sprintf(sTempFileFind,"%s\\*.*",sDirName); //将第二个参数写入到第一个参数当中
BOOL IsFinded = tempFind.FindFile(sTempFileFind);
while (IsFinded)
{
IsFinded = tempFind.FindNextFile();
//当这个目录中不含有.的时候,就是说这不是一个文件。
if (!tempFind.IsDots())
{
char sFoundFileName[200];
strcpy(sFoundFileName,tempFind.GetFileName().GetBuffer(200));
//我感觉这里好像有问题。
//如果是目录那么删除目录
if (tempFind.IsDirectory())
{
char sTempDir[200];
sprintf(sTempDir,"%s\\%s",sDirName,sFoundFileName);
DeleteDirectory(sTempDir); //其实真正删除文件的也就这两句,别的都是陪衬
}
//如果是文件那么删除文件
else
{
char sTempFileName[200];
sprintf(sTempFileName,"%s\\%s",sDirName,sFoundFileName);
DeleteFile(sTempFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(sDirName))
{
return FALSE;
}
return TRUE;
}
MFC 删除文件夹
最新推荐文章于 2025-06-20 15:41:14 发布