php判断并删除空目录及空子目录的方法


Posted in PHP onFebruary 11, 2015

本文实例讲述了php判断并删除空目录及空子目录的方法。分享给大家供大家参考。具体实现方法如下:

步骤如下:

1.遍历目录及子目录
2.使用 scandir 判断目录是否为空,为空则使用rmdir 删除。

<?php 
/** 删除所有空目录 
* @param String $path 目录路径 
*/ 
function rm_empty_dir($path){ 
 if(is_dir($path) && ($handle = opendir($path))!==false){ 
  while(($file=readdir($handle))!==false){// 遍历文件夹 
   if($file!='.' && $file!='..'){ 
    $curfile = $path.'/'.$file;// 当前目录 
    if(is_dir($curfile)){// 目录 
     rm_empty_dir($curfile);// 如果是目录则继续遍历 
     if(count(scandir($curfile))==2){//目录为空,=2是因为.和..存在
      rmdir($curfile);// 删除空目录 
     } 
    } 
   } 
  } 
  closedir($handle); 
 } 
} 
$folder = '目标文件夹'; 
rm_empty_dir($folder); 
?>

使用 shell 则简单很多:

find 目标文件夹 -mindepth 1 -depth -empty -type d -exec rm -r {} \;

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
Apr 21 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
微信公众号之主动给用户发送消息功能
Jun 22 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
php获取YouTube视频信息的方法
Feb 11 #PHP
php实现图片局部打马赛克的方法
Feb 11 #PHP
php实现获取文件mime类型的方法
Feb 11 #PHP
php强制更新图片缓存的方法
Feb 11 #PHP
Laravel中使用自己编写类库的3种方法
Feb 10 #PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 #PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 #PHP
You might like
PHP4中实现动态代理
2006/10/09 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
prototype1.4中文手册
2006/09/22 Javascript
IE6 fixed的完美解决方案
2011/03/31 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
nodejs后台集成ueditor富文本编辑器的实例
2017/07/11 NodeJs
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
20年同学聚会邀请函
2014/02/04 职场文书
三项教育活动实施方案
2014/03/30 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
坎儿井导游词
2015/02/09 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
搭建Yolov5服务器
2022/04/30 Servers