1、递归法
deleteDir($dir)<BR>{<BR>if (rmdir($dir)==false && is_dir($dir)) {<BR> if ($dp = opendir($dir)) {<BR> while (($file=readdir($dp)) != false) {<BR> if (is_dir($file) && $file!='.' && $file!='..') {<BR> deleteDir($file);<BR> } else {<BR> unlink($file);<BR> }<BR> }<BR> closedir($dp);<BR> } else {<BR> exit('Not permission<div style="color:transparent">!本文来源gaodai.ma#com搞##代!^码网(</div><sup>搞gaodaima代码</sup>');<BR> }<BR>}<BR>}<BR>
2、系统调用法
function del_dir($dir)<BR>{<BR>if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {<BR> $str = "rmdir /s/q " . $dir;<BR>} else {<BR> $str = "rm -Rf " . $dir;<BR>}<BR>}<BR>
3、循环法
function deltree($pathdir)<BR>{<BR>echo $pathdir;//我调试时用的<BR>if(is_empty_dir($pathdir))//如果是空的<BR> {<BR> rmdir($pathdir);//直接删除<BR> }<BR> else<BR> {//否则读这个目录,除了.和..外<BR> $d=dir($pathdir);<BR> while($a=$d->read())<BR> {<BR> if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}<BR> //如果是文件就直接删除<BR> if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))<BR> {//如果是目录<BR> if(!is_empty_dir($pathdir.'/'.$a))//是否为空<BR> {//如果不是,调用自身,不过是原来的路径+他下级的目录名<BR> deltree($pathdir.'/'.$a);<BR> }<BR> if(is_empty_dir($pathdir.'/'.$a))<BR> {//如果是空就直接删除<BR> rmdir($pathdir.'/'.$a);<BR> }<BR> }<BR> }<BR> $d->close(); <BR> echo "必须先删除目录下的所有文件";//我调试时用的<BR> }<BR>}<BR>function is_empty_dir($pathdir)<BR>{<BR>//判断目录是否为空,我的方法不是很好吧?只是看除了.和..之外有其他东西不是为空<BR>$d=opendir($pathdir);<BR>$i=0;<BR> while($a=readdir($d))<BR> {<BR> $i++;<BR> }<BR>closedir($d);<BR>if($i>2){return false;}<BR>else return true;<BR>}<BR>