首页  >  文章  >  php教程  >  php复制目录下所有文件到另一目录中

php复制目录下所有文件到另一目录中

WBOY
WBOY原创
2016-05-25 16:55:151427浏览
在php中要复制一个目录的文件到另一个目录我们需要遍历指定目录,然后再复制一个个利用copy函数把目录的文件复制到新的目录即可了,下面我来介绍一个实例。


遍历某文件夹下的所有文件和文件夹,并且把所以匹配的文件复制到同一目录。下面例子把”/www/pooy/baike”目录里面的,所有html文件都复制到”/www/pooy/bk”这个目录下面。

 static $dir_list =0;
 static $file_list =0;
 代码如下
 代码如下 复制代码

$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 < count($ls); $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;

复制代码


$dir="/www/pooy/baike";
 function listfile($dir){ global $dir_list,$file_list; 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 < count($ls); $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;
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn