今天做了一些关于目录的一些批量操作,在网上搜集了。目录递归的三个操作,整理如下。
希望对大家有所帮助。
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) |