- 论坛徽章:
- 0
|
今天做了一些关于目录的一些批量操作,在网上搜集了。目录递归的三个操作,整理如下。
希望对大家有所帮助。
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);
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/99918/showart_2057650.html |
|