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 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
php实现的读取CSV文件函数示例
Feb 07 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 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缓存类代码(附详细说明)
2011/06/09 PHP
php中define用法实例
2015/07/30 PHP
鼠标图片振动代码
2006/07/06 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
vue中如何使用ztree
2018/02/06 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
Python实现处理管道的方法
2015/06/04 Python
Python ftp上传文件
2016/02/13 Python
Python用于学习重要算法的模块pygorithm实例浅析
2018/08/16 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
思想政治自我鉴定
2013/10/06 职场文书
军训心得体会
2013/12/31 职场文书
高中军训广播稿
2014/01/14 职场文书
关爱残疾人标语
2014/06/25 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏