Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php递归删除目录的例子

php递归删除目录的例子

发布时间:2014-12-10   编辑:www.jquerycn.cn
用php删除一个空目录相当简单了,用rmdir() 函数即可搞定。<br /> 但是要删除一个非空目录,则无法进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录,因此我们需要进行递归删除。

    用php删除一个空目录相当简单了,用rmdir() 函数即可搞定。
    但是要删除一个非空目录,则无法进行快速的删除,必须先将目录中文件删除,但是目录里可能还会有子目录,因此我们需要进行递归删除。

下面是一个递归删除目录的例子。
文件名:del_files.php
 

复制代码 代码如下:
<?php
function deletedir($dir){
      if(!handle=@opendir($dir)){     //检测要打开目录是否存在
               die("没有该目录");
      }
     while(false !==($file=readdir($handle))){
               if($file!=="."&&$file!==".."){       //排除当前目录与父级目录
                            $file=$dir .DIRECTORY_SEPARATOR. $file;
                            if(is_dir($file)){
                                  deletedir($file);
                            }else{
                                  if(@unlink($file)){
                                         echo "文件<b>$file</b>删除成功。<br>";
                                  }else{
                                          echo  "文件<b>$file</b>删除失败!<br>";
                                 }
                }
     }
    if(@rmdir($dir)){
           echo "目录<b>$dir</b>删除成功了。<br>\n";
    }else{
           echo "目录<b>$dir</b>删除失败!<br>\n";
  }
}
 
//测试程序
$dir="/var/www/test";
deletedir($dir);
?>

在 /var/www/test 文件夹下创建一些文件夹和文件。
shell> touch  aaa
shell> touch  bbb
shell> touch  ccc
shell> touch  eee
shell> touch  ffff
shell> mkdir   111
shell> mkdir   222
shell> mkdir   333
分别再在111,222,333  文件夹下创建一些文件,然后给予权限。
shell>chown www.www test -R

然后运行del_files.php,检测递归删除目录的效果。

>>>

您可能感兴趣的文章:
删除指定文件夹中所有文件的php代码
php递归创建目录小例子
PHP删除N分钟前创建的所有文件的小例子
php删除目录下N天前所有文件的代码一例
php 删除记录同时删除图片文件的代码
用PHP实现遍历删除目录及此目录下存放的所有文件
php目录遍历与删除的代码一例
PHP递归算法实例解析
Php删除指定文件与文件夹的方法
dos中RD命令递归删除目录的方法

[关闭]