コード例 #1
0
ファイル: ns-cloner.php プロジェクト: AlexanderDolgan/ojahuri
 function copy_files()
 {
     $this->dlog('ENTER ns_cloner::copy_files');
     $num_files = ns_recursive_dir_copy($this->source_upload_dir, $this->target_upload_dir, 0);
     $this->report[__('Files/directories copied', 'ns-cloner')] = $num_files;
     $this->dlog('Copied: <b>' . $num_files . '</b> folders and files!');
     $this->dlog('From: <b>' . $this->source_upload_dir . '</b>');
     $this->dlog('To: <b>' . $this->target_upload_dir . '</b>');
 }
コード例 #2
0
ファイル: ns-file-utils.php プロジェクト: alpual/Caitlin-Sabo
/**
 * Copy directories and files recursively and return number of copies executed
 * Skip directories called 'sites' to avoid copying all sites storage in WP > 3.5
 * @return int number of files copied
 */
function ns_recursive_dir_copy($src, $dst, $num = 0)
{
    $num = $num + 1;
    if (is_dir($src)) {
        if (!file_exists($dst)) {
            mkdir($dst);
        }
        $files = scandir($src);
        foreach ($files as $file) {
            if ($file != "." && $file != ".." && $file != 'sites') {
                $num = ns_recursive_dir_copy("{$src}/{$file}", "{$dst}/{$file}", $num);
            }
        }
    } elseif (file_exists($src)) {
        copy($src, $dst);
    }
    return $num;
}