Chinaunix首页 | 论坛 | 博客
  • 博客访问: 263955
  • 博文数量: 33
  • 博客积分: 1310
  • 博客等级: 中尉
  • 技术积分: 372
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-29 10:59
文章分类

全部博文(33)

文章存档

2011年(10)

2010年(7)

2009年(16)

我的朋友

分类:

2009-09-22 15:27:25

 
今天做了一些关于目录的一些批量操作,在网上搜集了。目录递归的三个操作,整理如下。
希望对大家有所帮助。
 
1、递归创建目录
 

/**
*递归创建目录
*/
function mkdir_recurse($dir,$mode='0777')
{
    if(!is_dir($dir)){
           mkdir_recurse(dirname($dir),$mode);
           mkdir($dir,$mode);
    }
return true;
}

2、递归拷贝目录

 

/**
 *批量拷贝目录(包括子目录下所有文件)
 * copy a direction's all files to another direction
 *用法:
 * copydir_recurse("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录
 * copydir_recurse("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录
 * 参数说明:
 * $source:源目录名
 * $destination:目的目录名
 * $child:复制时,是不是包含的子目录
*/
function copydir_recurse($source,$destination ,$child){
    if(!is_dir($source)){
        echo("Error:the $source is not a direction!");
        return 0;
    }

    if(!is_dir($destination)){
        mkdir($destination,0777);
    }
    $handle=dir($source);

    while($entry=$handle->read())
    {
        if(($entry!=".")&&($entry!=".."))
        {
             if(is_dir($source."/".$entry))
             {
                 if($child)
                copydir_recurse($source."/".$entry,$destination."/".$entry,$child);
            }
            else
            {
                copy($source."/".$entry,$destination."/".$entry);

            }
        }
    }
return 1;
}

 

3、递归删除目录

/**
*递归删除目录(包括子目录下所有文件)
*/

function rmdir_recurse($dir) {
   if($objs = glob($dir."/*")){
       foreach($objs as $obj) {
           is_dir($obj)? rmdir_recurse($obj) : unlink($obj);
       }
   }
   rmdir($dir);
}

阅读(1121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~