欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

EVC删除非空目录

发布时间:2025/4/5 c/c++ 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 EVC删除非空目录 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
//=====================================================================================================
//TITLE:
//  EVC删除非空目录
//AUTHOR:
//  norains
//DATE:
//  Thursday  22-June -2006
//=====================================================================================================
  采用的是MFC,如果需要移植到SDK,只要把CString换成相应类型即可。
  代码比较简单,只简单做一下解释:
  BOOL DeleteDirectory(const CString szDir)
  {
   CString szFindDir=szDir;
   if(szFindDir.Right(1)!="//")
   {
    szFindDir+="//"; 
   }
   szFindDir+="*.*";
  
   WIN32_FIND_DATA fd;
   HANDLE hFind;
   hFind=FindFirstFile(szFindDir,&fd);
   if(hFind!=INVALID_HANDLE_VALUE)
   {
    do{
     if(fd.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
     {  
      //it must be directory,get into
      DeleteDirectory(szDir+"//"+fd.cFileName);  
     }
     else
     { 
      //it is file ,delete it
      if(DeleteFile(szDir+"//"+fd.cFileName)==FALSE)
      {
       return FALSE;
      }
     }
  
    }while(FindNextFile(hFind,&fd));
   }
  
   //if you donot close the handle,the next step of Removing Directory would failed
   CloseHandle(hFind);
   //the root directory must be empty ,so remove it
   if(RemoveDirectory(szDir)==FALSE)
   {
    return FALSE;
   }
  
   return TRUE;
  }                          
                      
  
  由此也可引出一个判断目录是否为空的代码,也比较简单,如下:
  BOOL IsDirEmpty(const CString szDir)
  {
   CString szFindDir=szDir;
   if(szFindDir.Right(1)!="//")
   {
    szFindDir+="//"; 
   }
   szFindDir+="*.*";
  
   WIN32_FIND_DATA fd;
   HANDLE hFind;
   hFind=FindFirstFile(szFindDir,&fd);
   if(hFind!=INVALID_HANDLE_VALUE)
   {
    return FALSE;
   }
   else
   {
    //it is empty
    return TRUE;
   }
  }

转载于:https://www.cnblogs.com/wodeyitian/archive/2006/06/22/2460552.html

总结

以上是生活随笔为你收集整理的EVC删除非空目录的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。