PHP递归复制文件夹的类

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

  1. <?php
  2. /*
  3. * 文件夹复制类,
  4. * 吴钧泽 2015年11月2日16点29分
  5. */
  6. class CopyFile
  7. {
  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. */
  34. function CreateFolder($dir, $mode = 0777){
  35. if (is_dir($dir) || @mkdir($dir,$mode)){
  36. return true;
  37. } //phpfensi.com
  38. if (!$this->CreateFolder(dirname($dir),$mode)){
  39. return false;
  40. }
  41. return @mkdir($dir, $mode);
  42. }
  43. }
  44. //使用方法
  45. //引入本类,直接new copyFile('要复制谁','复制到那');
  46. //$file = new CopyFile('./10010','./10010copy');
  47. ?>