PHP下用rmdir实现删除目录的三种方法小结


Posted in PHP onApril 20, 2008

1、递规法:利用递归一层一层的删。 

deleteDir($dir)   
{   
if (rmdir($dir)==false && is_dir($dir)) {   
if ($dp = opendir($dir)) {   
  while (($file=readdir($dp)) != false) {   
   if (is_dir($file) && $file!='.' && $file!='..') {   
    deleteDir($file);   
   } else {   
    unlink($file);   
   }   
  }   
  closedir($dp);   
} else {   
  exit('Not permission');   
}   
}    
}  

2、系统调用法 
function del_dir($dir)   
{   
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {   
    $str = "rmdir /s/q " . $dir;   
} else {   
    $str = "rm -Rf " . $dir;   
}   
}  

3、循环法 
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)    
{   
//判断目录是否为空   
$d=opendir($pathdir);    
$i=0;    
   while($a=readdir($d))    
   {    
   $i++;    
   }    
closedir($d);    
if($i>2){return false;}    
else return true;    
}   

PHP 相关文章推荐
十天学会php之第十天
Oct 09 PHP
用文本作数据处理
Oct 09 PHP
写一个用户在线显示的程序
Oct 09 PHP
用PHP制作静态网站的模板框架(二)
Oct 09 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
php关联数组快速排序的方法
Apr 17 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
Mysql中limit的用法方法详解与注意事项
Apr 19 #PHP
php采集速度探究总结(原创)
Apr 18 #PHP
Snoopy类使用小例子
Apr 15 #PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 #PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 #PHP
php zend解密软件绿色版测试可用
Apr 14 #PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 #PHP
You might like
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
2012/09/05 PHP
php实现微信支付之企业付款
2018/05/30 PHP
动态样式类封装JS代码
2009/09/02 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
React中的render何时执行过程
2018/04/13 Javascript
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
js实现小星星游戏
2020/03/23 Javascript
详解C++编程中一元运算符的重载
2016/01/19 Python
Python实现完整的事务操作示例
2017/06/20 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python实现126邮箱发送邮件
2020/05/20 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
前端实现打印图像功能
2019/08/27 HTML / CSS
全球最大的游戏市场:G2A
2018/07/05 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
计算机网络及管理学专业求职信
2014/06/05 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
2014年收银工作总结
2014/11/13 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL