当前位置:首页 > 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. public $fromFile
  9. public $toFile
  10. /* 
  11.  * $fromFile  要复制谁 
  12.  * $toFile    复制到那 
  13.  */ 
  14. function copyFile($fromFile,$toFile){ 
  15.     $this->CreateFolder($toFile); 
  16.     $folder1=opendir($fromFile); 
  17.     while($f1=readdir($folder1)){ 
  18.         if($f1!="." && $f1!=".."){ 
  19.             $path2="{$fromFile}/{$f1}"
  20.             if(is_file($path2)){    
  21.                 $file = $path2
  22.                 $newfile = "{$toFile}/{$f1}"
  23.                 copy($file$newfile); 
  24.             }elseif(is_dir($path2)){ 
  25.                 $toFiles = $toFile.'/'.$f1
  26.                 $this->copyFile($path2,$toFiles); 
  27.             } 
  28.         } 
  29.     } 
  30. /* 
  31.  * 递归创建文件夹 
  32.  */ 
  33. function CreateFolder($dir$mode = 0777){ 
  34.     if (is_dir($dir) || @mkdir($dir,$mode)){ 
  35.         return true; 
  36.     }  //phpfensi.com 
  37.     if (!$this->CreateFolder(dirname($dir),$mode)){ 
  38.         return false; 
  39.     } 
  40.     return @mkdir($dir$mode); 
  41. //使用方法 
  42. //引入本类,直接new copyFile('要复制谁','复制到那'); 
  43. //$file = new CopyFile('./10010','./10010copy'); 
  44. ?> 

Tags: 递归 文件夹

分享到: