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 adodb连接mssql解决乱码问题
Jun 12 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
Apr 11 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP二维索引数组的遍历实例分析【2种方式】
Jun 24 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
axios基本入门用法教程
2017/03/25 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
谈谈JS中的!!
2017/12/07 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
Python入门篇之正则表达式
2014/10/20 Python
Python isinstance函数介绍
2015/04/14 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
毕业生的求职信范文分享
2013/12/04 职场文书
网页美工求职信
2014/02/15 职场文书
大学军训感言800字
2014/02/27 职场文书
2014年元旦感言
2014/03/06 职场文书
公司承诺书格式
2014/05/21 职场文书
公司授权委托书样本
2014/09/15 职场文书
计生个人工作总结
2015/02/28 职场文书
停电通知范文
2015/04/16 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
团干部培训班心得体会
2016/01/06 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js