A-A+
php批量复制指定所有目录下的文件到一个文件夹下
php批量进行复制指定的目录文件夹下所有文件复制到另一个文件夹下,还可以将其原文件夹进行递归删除操作,由以下三个函数组成一个功能,批量拷贝目录(包括子目录)下所有文件到一个文件夹下; 最大特点是它不复制目录,只复制所有子目中的文件,有了这个php小源码程序,作为phper者,再复制程序的时候就可以直接应用php了,当然,如果不是网站应用,那就没必要用这个了。
<?php /** * 递归删除文件夹 * deldirs */ function deldirs($dir) { $dh=opendir($dir); while ($file=readdir($dh)) { if($file!=="." && $file!=="..") { $fullpath=$dir."/".$file; if(!is_dir($fullpath)) { unlink($fullpath); } else { deldirs($fullpath); } } } closedir($dh); if(rmdir($dir)) { return true; } else { return false; } } /** *批量拷贝目录(包括子目录下所有文件) * 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){ static $arr_file=array(); 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); deldirs($destination."/".$entry); //删除空文件夹 } else { $arr_file[$source."/".$entry]=$entry; } } } return $arr_file; } //$arr_file=copydir_recurse('D:\wamp\tmp','E:\dir',1); /** *批量拷贝目录(包括子目录)下所有文件到一个文件夹下; * *用法: $arr_file这个数组是从 copydir_recurse中得到的; copy_only_file($arr_file,'E:\dir') * 参数说明: * $file_arr:文件数组,键名为包含原文件夹下的所有文件路经,键值为目录文件名; * $aim_dir:目标目录名 */ function copy_only_file($arr_file,$aim_dir){ foreach($arr_file as $key=> $value){ if(is_dir($value)) deldirs($value);//删除空目录 copy($key,$aim_dir.'\ '.$value); } } //copy_only_file($arr_file,'E:\dir') ?>