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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
XAMPP安装与使用方法详细解析
Nov 27 PHP
php检测useragent版本示例
Mar 24 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
php中将一个对象保存到Session中的方法
Mar 13 PHP
php创建无限级树型菜单
Nov 05 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP项目多语言配置平台实现过程解析
May 18 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
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
js打开windows上的可执行文件示例
2014/05/27 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
python字符串string的内置方法实例详解
2018/05/14 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
物流合作计划书
2014/01/10 职场文书
国旗下的演讲稿
2014/05/08 职场文书
军训口号
2014/06/13 职场文书
地球一小时活动总结
2015/02/27 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
详解Vue的sync修饰符
2021/05/15 Vue.js
Golang中异常处理机制详解
2021/06/08 Golang
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android