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 n个不重复的随机数生成代码
Jun 23 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
php字符串的替换,分割和连接方法
May 23 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP构造二叉树算法示例
Jun 21 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
php微信公众号开发之秒杀
Oct 20 PHP
Yii2框架自定义类统一处理url操作示例
May 25 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正则
2006/07/07 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
Python中函数的用法实例教程
2014/09/08 Python
Python中的zip函数使用示例
2015/01/29 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
网站客服岗位职责
2014/04/05 职场文书
团日活动总结书
2014/05/08 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技