如何删除多级目录

时间:2010-01-16 10:37:47   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:果你的目录没有十几层的话应该没有问题的吧~,但我不熟悉递归只能做到      deltree($path);rmdir($path)才能删除这个目录能不能做到直接deltree($path);就删除这个目录??      function deltree($pathdir)   {   echo $pathdir;//我调试时用的     &nb...
  正文:

昨天看见一个贴子(chinaASP/ target=_blank class=infotextkey>asp)问怎么删除目录,以前一直可以,但昨天出了问题,原来他只是把他下级的文件删了后就删
  
  目录所以如果多几级就有问题。
  
  我的这个只能暂时凑活着用,如果你的目录没有十几层的话应该没有问题的吧~,但我不熟悉递归只能做到
  
  deltree($path);rmdir($path)才能删除这个目录能不能做到直接deltree($path);就删除这个目录??
  
  function deltree($pathdir)
  {
  echo $pathdir;//我调试时用的
  
  if(is_empty_dir($pathdir))//如果是空的
   {
   rmdir($pathdir);//直接删除
   }
   else
   {//否则读这个目录,除了.和..外
   $d=dir($pathdir);
   while($a=$d->read())
   {
   if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}
   //如果是文件就直接删除
   if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))
   {//如果是目录
   if(!is_empty_dir($pathdir.'/'.$a))//是否为空
   {//如果不是,调用自身,不过是原来的路径+他下级的目录名
   deltree($pathdir.'/'.$a);
   }
   if(is_empty_dir($pathdir.'/'.$a))
   {//如果是空就直接删除
   rmdir($pathdir.'/'.$a);
   }
   }
   }
   $d->close();
  
   echo "必须先删除目录下的所有文件";//我调试时用的
  
   }
  
  }
  
  function is_empty_dir($pathdir)
  {//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空,PHP有没有给出什么
  
  函数?
  $d=opendir($pathdir);
  $i=0;
   while($a=readdir($d))
   {
   $i++;
   }
  closedir($d);
  if($i>2){return false;}
  else return true;
  } 
  


来源:http://www.002pc.com/master/College/Programming/PHP/11943.html

收藏到:

关于《如何删除多级目录》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td