dircopy

dircopy
SYNOPSIS

dircopy($from, $to, $mode = 0777)

CODE
  1. function dircopy($from, $to, $mode = 0777) {
  2.     if (!is_dir($from)) {
  3.         return false;
  4.     }
  5.  
  6.     if (!is_dir($to)) {
  7.         if (!@mkdir($to)) {
  8.             return false;
  9.         }
  10.     }
  11.  
  12.     dircopyaux($from, $to, $mode);
  13.  
  14.     return true;
  15. }
  16.  
  17. function dircopyaux($from, $to, $mode) {
  18.     $handle = opendir($from);
  19.     while (($file = readdir($handle)) !== false) {
  20.         if ($file == '.' || $file == '..') {
  21.             continue;
  22.         }
  23.         $frompath = $from . DIRECTORY_SEPARATOR . $file;
  24.         $topath = $to . DIRECTORY_SEPARATOR . $file;
  25.         if (is_link($frompath)) {
  26.             symlink(readlink($frompath), $topath);
  27.         }
  28.         else if (is_file($frompath)) {
  29.             copy($frompath, $topath);
  30.         }
  31.         else if (is_dir($frompath)) {
  32.             mkdir($topath, $mode);
  33.             dircopyaux($frompath, $topath, $mode);
  34.         }
  35.     }
  36.     closedir($handle);
  37. }
SEE ALSO

dirclear, dirlist

Comments

To add a comment, click here.