源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++递归删除一个目录实例

  • 时间:2020-07-22 22:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++递归删除一个目录实例
本文实例讲述了C++递归删除一个目录的实现方法。分享给大家供大家参考。具体方法如下: CFindFile的使用框架如下:
[u]复制代码[/u] 代码如下:
void Recurse(LPCTSTR pstr)  {     CFileFind finder;       // build a string with wildcards     CString strWildcard(pstr);     strWildcard += _T("\\*.*");       // start working for files     BOOL bWorking = finder.FindFile(strWildcard);       while (bWorking)     {        bWorking = finder.FindNextFile();          // skip . and .. files; otherwise, we'd        // recur infinitely!          if (finder.IsDots())           continue;          // if it's a directory, recursively search it          if (finder.IsDirectory())        {           CString str = finder.GetFilePath();           TRACE(_T("%s\n"), (LPCTSTR)str);           Recurse(str);        }     }       finder.Close();  }
递归删除代码如下:
[u]复制代码[/u] 代码如下:
//循环删除一个目录  void RecursiveDelete(CString strDir)  {      CFileFind ff;      CString strPath;      strPath = strDir;      if (strPath.Right(1) != '\\')      {          strPath += '\\';      }      strPath += "*.*";        BOOL bWorking = ff.FindFile(strPath);      while (bWorking)      {          bWorking = ff.FindNextFile();            // skip . and .. files; otherwise, we'd          // recur infinitely!          if (ff.IsDots())              continue;            // if it's a directory, recursively search it            if (ff.IsDirectory())          {              //递归目录              CString str = ff.GetFilePath();              TRACE(_T("%s\n"), (LPCTSTR)str);              RecursiveDelete(str);              //删除目录              ::SetFileAttributesA(str, FILE_ATTRIBUTE_NORMAL);              ::RemoveDirectory(str);          }          else          {              //删除文件              CString str = ff.GetFilePath();              TRACE(_T("%s\n"), (LPCTSTR)str);              ::SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL);              ::DeleteFile(str);          }      }        ff.Close();    }  int main(int argc, char *argv[])  {      RecursiveDelete("C:\\20_128\\");      return 0;  }
希望本文所述对大家的C++程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部