快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

如何删除多级目录

昨天看见一个贴子(chinaasp)问怎么删除目录,以前一直可以,但昨天出了问题,原来他只是把他下级的文件删了后就删

目录所以假如多几级就有问题。

我的这个只能暂时凑活着用,假如你的目录没有十几层的话应该没有问题的吧~,但我不认识递归只能做到

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;
}  


返回类别: 教程
上一教程: Zend进军中国:PHP在中国的机遇
下一教程: 开发大型PHP项目的方式(五)

您可以阅读与"如何删除多级目录"相关的教程:
· PHP中几种删除目录的方式
· PHP的目录治理函数
· 如何把PHP转成EXE文件
· 如何在PHP中使用Oracle数据库(1)
· 如何实现给定日期的若干天以后的日期
    微笑服务 优质保证 索取样品