注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

MFC--删除指定目录下的文件夹及其文件  

2012-09-04 01:01:53|  分类: C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

/////

//////////////////////////////////////////////////////////////////////////--zwh--注:删除当前文件夹及其子文件夹与文件(接口);
BOOL CBackupToolDlg::clearFiles(CString strPath)
{
 //=========功能概要:删除给定路径下的所有文件========//
 /*
 * 功能:传入绝对路径,清空此文件夹内的所有内容(做为接口使用,故建议不在此函数内递归);
 */
 //==================================================//

 BOOL bSuccess = TRUE;//作为in/out参数传入;
 ForeachSubDir(strPath,bSuccess);

 return bSuccess;
}
//////////////////////////////////////////////////////////////////////////--zwh;

//////////////////////////////////////////////////////////////////////////---zwh--注:递归法遍历并删除当前目录下的所有文件及文件夹;
void CBackupToolDlg::ForeachSubDir(CString strPath,BOOL bSuccess)
{
 if (strPath.Right(1)!="\\")
 {
  strPath += "\\";
 }
 strPath += "*.*";  //形如c:\windows\system32\*.*
 CFileFind fileFinder;
 BOOL bFile = fileFinder.FindFile(strPath);
 while(bFile)
 {
  bFile = fileFinder.FindNextFile();
  if (fileFinder.IsDirectory() && !fileFinder.IsDots())  //当为文件夹时;
  {
   
   CString temp = strPath;
   int i = temp.Find("*.*");
   temp.Delete(i,3);
   temp = temp + fileFinder.GetFileName();  //拿到文件夹的全路径,诸如:c:\windows\system32\drivers
   if(fileFinder.GetLength()==0)//如果为空目录,则删除文件夹;
   {
    RemoveDirectory(temp.GetBuffer());
   }
   else
   {
    ForeachSubDir(temp,TRUE);
   }   
  }
  else if(!fileFinder.IsDirectory() && !fileFinder.IsDots()) //当为文件时;
  {
   CString strFullName = fileFinder.GetFilePath();

   //因为CFile::Remove可能会抛出CFile的异常,所以应该用try..catch来处理异常;
   try
   {
    CFile::Remove(strFullName.GetBuffer());
   }
   catch (CFileException* pEx)
   {
    #ifdef _DEBUG
     afxDump << "File " << strFullName.GetBuffer() << " cannot be removed\n";
    #endif
     pEx->Delete();

    bSuccess = FALSE;//遇到异常,返回FALSE;
    return ;
   }
  }
 }//--end--while
 fileFinder.Close();
}
//////////////////////////////////////////////////////////////////////////--zwh;

  评论这张
 
阅读(1371)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018