php复制目录下的所有文件及文件夹

比如网站根目录下有一个文件夹a,文件夹a中又有多个文件及子文件夹,而这些子文件夹中可能还有多重子文件夹,那么如果我想把文件夹a中的所有文件及多重子文件夹全部复制到根目录下的b文件夹中,要怎么做呢?

换种方法说吧,根目录下有文件夹a,文件夹a中有文件a1.xxx,a2.xxx,a
3.xxx等文件及a4,a5,a6,a7等文件夹,而a4中有a4a,a4b,a4c等文件及a4d,a5d,a6d等文件夹,而a4d,a5d,a6d文件夹中可能还有其他子文件夹。a5,a6,a7也是这样

现在根目录下有一个文件夹b,怎么才能把a中的所有文件及文件夹全部复制到b中呢?

这个直接用下面这个函数就可以了,多看下手册,很多例子的啊。

function recurse_copy($src,$dst) { // 原目录,复制到的目录

$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-28
PHP复制文件夹及下面所有文件,参考如下:
function xCopy($source, $destination, $child){
  //用法:
  // xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录
  // xCopy("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录
  //参数说明:
  // $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)
        xCopy($source."/".$entry,$destination."/".$entry,$child);
      }
      else{
        copy($source."/".$entry,$destination."/".$entry);
      }
    }
  }

  return 1;
}

?>
第2个回答  2015-05-31
遍历某文件夹下的所有文件和文件夹,并且把所以匹配的文件复制到同一目录。
$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."<br>";
if($entry=="." || $entry=="..") continue;
if ( is_dir( $tem_curnt)) {
listfile($tem_curnt);
echo "文件夹 ".$tem_curnt."<br>";
$dir_list++;
}
elseif ( is_file($tem_curnt))
{
echo "文件".$tem_curnt."<BR>";
_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"<br>";
echo"文件数:".$file_list;

上一页:PHP时间戳和日期相互转换 下一页:PHP中生成横状百分比图片实例
相关内容
2014.10.10python获取某目录下的所有文件和子目录-os.listdir
2014.07.17python中批量移动目录所有文件函数
2014.07.09PHP自定义遍历目录下所有文件dir(),readdir()函数
2013.12.17php读取指定目录文件夹下所有文件名
2013.05.31python读取指定目录下所有文件
2012.12.20PHP unlink与rmdir删除目录及目录下所有文件
2012.03.15php批量替换内容或指定目录下所有文件内容
2011.04.08php 获取目录下所有文件实现代码
2010.10.21php 目录列出所有文件
2010.10.09php递归删除目录所有文件
相似回答