当前位置:首页 > PHP教程 > php文件操作 > 列表

PHP递归复制文件夹的类

发布:smiling 来源: PHP粉丝网  添加日期:2016-07-15 16:07:21 浏览: 评论:0 

复制文件夹是相当的复杂的一个过程了,我们需要先判断类型是文件还是目录,然后查找目录中是否还有目录了,下面我们来看一个关于PHP递归复制文件夹的类,希望例子能够帮助到各位.

  1. <?php 
  2. /* 
  3.  * 文件夹复制类, 
  4.  * 吴钧泽  2015年11月2日16点29分 
  5.  
  6.  */ 
  7. class CopyFile 
  8. { 
  9. public $fromFile; 
  10. public $toFile; 
  11. /* 
  12.  * $fromFile  要复制谁 
  13.  * $toFile    复制到那 
  14.  */ 
  15. function copyFile($fromFile,$toFile){ 
  16.     $this->CreateFolder($toFile); 
  17.     $folder1=opendir($fromFile); 
  18.     while($f1=readdir($folder1)){ 
  19.         if($f1!="." && $f1!=".."){ 
  20.             $path2="{$fromFile}/{$f1}"; 
  21.             if(is_file($path2)){    
  22.                 $file = $path2; 
  23.                 $newfile = "{$toFile}/{$f1}"; 
  24.                 copy($file, $newfile); 
  25.             }elseif(is_dir($path2)){ 
  26.                 $toFiles = $toFile.'/'.$f1; 
  27.                 $this->copyFile($path2,$toFiles); 
  28.             } 
  29.         } 
  30.     } 
  31. } 
  32. /* 
  33.  * 递归创建文件夹 
  34.  */ 
  35. function CreateFolder($dir, $mode = 0777){ 
  36.     if (is_dir($dir) || @mkdir($dir,$mode)){ 
  37.         return true; 
  38.     }  //phpfensi.com 
  39.     if (!$this->CreateFolder(dirname($dir),$mode)){ 
  40.         return false; 
  41.     } 
  42.     return @mkdir($dir, $mode); 
  43. } 
  44. } 
  45. //使用方法 
  46. //引入本类,直接new copyFile('要复制谁','复制到那'); 
  47. //$file = new CopyFile('./10010','./10010copy'); 
  48. ?> 

Tags: 递归 文件夹

分享到: