分享

C++删除文件夹代码

 勤奋不止 2013-08-26

void DeleteFile (string &path)//path为绝对路径
{
 string DirName = path ;
 string Dot1(".");
 string Dot2("..");

 WIN32_FIND_DATA FindData ;//文件搜索结构
 HANDLE Find ;//句柄 
 string DirFindName = DirName+"\\*.*";
 Find = FindFirstFile(DirFindName.c_str() , &FindData);
 FindNextFile(Find,&FindData);
 if ( Find == INVALID_HANDLE_VALUE )//无效句柄
 {
   FindClose(Find);
   cout <<"无效句柄"<<endl;
   exit( 0 );
 }
 while (1)
 {
  if (!FindNextFile(Find,&FindData))//搜索下一个文件
    break;
  //string strTmpName = DirName + FindData.cFileName ;
  if ( Dot1 != FindData.cFileName || Dot2 != FindData.cFileName )
  {
   if ( FindData.dwFileAttributes == 16 )//找到的是文件夹
   {
    string NewDirName = DirName + "\\" + FindData.cFileName + "\\" ;
    DeleteFile(NewDirName);//递归查找
   }
  }
  string strImg = DirName + "\\" + FindData.cFileName ;
  string dele = "del " + strImg ;
  system(dele.c_str()) ;
 }
 FindClose(Find);
 RemoveDirectory(path.c_str());
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多