コード例 #1
0
function wptouch_recursive_copy($source_dir, $dest_dir)
{
    $src_dir = @opendir($source_dir);
    if ($src_dir) {
        while (($f = readdir($src_dir)) !== false) {
            if ($f == '.' || $f == '..') {
                continue;
            }
            $cur_file = $source_dir . '/' . $f;
            if (is_dir($cur_file)) {
                if (!wp_mkdir_p($dest_dir . '/' . $f)) {
                    WPTOUCH_DEBUG(WPTOUCH_WARNING, "Unable to create directory " . $dest_dir . '/' . $f);
                }
                wptouch_recursive_copy($source_dir . '/' . $f, $dest_dir . '/' . $f);
            } else {
                $dest_file = $dest_dir . '/' . $f;
                $src = @fopen($cur_file, 'rb');
                if ($src) {
                    $dst = fopen($dest_file, 'w+b');
                    if ($dst) {
                        while (!feof($src)) {
                            $contents = fread($src, 8192);
                            fwrite($dst, $contents);
                        }
                        fclose($dst);
                    } else {
                        WPTOUCH_DEBUG(WPTOUCH_ERROR, 'Unable to open ' . $dest_file . ' for writing');
                    }
                    fclose($src);
                } else {
                    WPTOUCH_DEBUG(WPTOUCH_ERROR, 'Unable to open ' . $cur_file . ' for reading');
                }
            }
        }
        closedir($src_dir);
    }
}
コード例 #2
0
 function recursive_copy($source_dir, $dest_dir)
 {
     require_once WPTOUCH_DIR . '/core/file-operations.php';
     wptouch_recursive_copy($source_dir, $dest_dir);
 }