在php中要复制一个目录的文件到另一个目录我们需要遍历指定目录,然后再复制一个个利用copy函数把目录的文件复制到新的目录即可了,下面我来介绍一个实例。
遍历某文件夹下的所有文件和文件夹,并且把所以匹配的文件复制到同一目录。下面例子把”/www/pooy/baike”目录里面的,所有html文件都复制到”/www/pooy/bk”这个目录下面。
代码如下 |
复制代码 |
$dir="/www/pooy/baike"; static $dir_list =0; static $file_list =0; function listfile($dir){ global $dir_list,$file_list; $d = dir($dir); while ( $entry = $d->read()) { $tem_curnt=$dir."/".$entry; //echo $tem_curnt." "; if($entry=="." || $entry=="..") continue; if ( is_dir( $tem_curnt)) { listfile($tem_curnt); echo "文件夹 ".$tem_curnt." "; $dir_list++; } elseif ( is_file($tem_curnt)) { echo "文件".$tem_curnt." "; _copy($tem_curnt,"/www/pooy/bk"); $file_list++; } } $d->close(); } function _copy($src, $dst) { if ( ! is_dir($src)) { if ( ! copy($src, $dst)) { return _log('Unable to copy files', $src); } } else { mkdir($dst); $ls = scandir($src); for ($i = 0; $i if ($ls[$i] == '.' OR $ls[$i] == '..') continue; $_src = $src.'/'.$ls[$i]; $_dst = $dst.'/'.$ls[$i];
if ( is_dir($_src)) { if ( ! _copy($_src, $_dst)) { return _log('Unable to copy files', $_src); } } else { if ( ! copy($_src, $_dst)) { return _log('Unable to copy files', $_src); } } } } return TRUE; }listfile($dir); echo "目录数:".$dir_list; echo" "; echo"文件数:".$file_list;
|