You are here

function webfm_move_dir_recur in Web File Manager 5.2

1 call to webfm_move_dir_recur()
webfm_move in ./webfm_file.inc
Move a directory or file and update database

File

./webfm_file.inc, line 251

Code

function webfm_move_dir_recur($source, $dest, $uid, $ret, &$err_arr) {
  $dest .= '/' . strrev(substr(strrev($source), 0, strpos(strrev($source), '/')));
  if (!is_dir($dest)) {
    if (!@mkdir($dest)) {
      return FALSE;
    }
    chmod($dest, 0775);
    if (!is_writable($dest)) {
      $err_arr[] = $dest . " is not writable";
      @rmdir($dest);
      return FALSE;
    }
  }
  else {

    //directory already exists (can only occur at topmost directory)
    $err_arr[] = $dest . " directory already exists";
    return FALSE;
  }

  //directory built - return true to indicate refresh required
  $ret = TRUE;
  if ($handle = opendir($source)) {
    while (false !== ($file = readdir($handle))) {
      if ($file != '.' && $file != '..') {
        $source_item = $source . '/' . $file;
        if (is_file($source_item)) {

          // file
          webfm_move_file($source_item, $dest . '/' . $file, $uid, $err_arr);
        }
        elseif (is_dir($source_item)) {

          // directory
          webfm_move_dir_recur($source_item, $dest, $uid, $ret, $err_arr);
        }
      }
    }
    closedir($handle);
  }

  //clean-up source directory
  @rmdir($source);
  return $ret;
}