PHP递归复制文件夹的类

2020-08-14 15:22:34 浏览数 (1)

代码语言:javascript复制
<?php

/*
 * 文件夹复制类,
 */

class CopyFile
{
    public $fromFile;
    public $toFile;

    /*
     * $fromFile  要复制谁
     * $toFile    复制到那
     */
    function copyFile($fromFile, $toFile)
    {
        $this->CreateFolder($toFile);
        $folder1 = opendir($fromFile);
        while ($f1 = readdir($folder1)) {
            if ($f1 != "." && $f1 != "..") {
                $path2 = "{$fromFile}/{$f1}";
                if (is_file($path2)) {
                    $file = $path2;
                    $newfile = "{$toFile}/{$f1}";
                    copy($file, $newfile);
                } elseif (is_dir($path2)) {
                    $toFiles = $toFile . '/' . $f1;
                    $this->copyFile($path2, $toFiles);
                }
            }
        }
    }

    /*
     * 递归创建文件夹
     */
    function CreateFolder($dir, $mode = 0777)
    {
        if (is_dir($dir) || @mkdir($dir, $mode)) {
            return true;
        }
        if (!$this->CreateFolder(dirname($dir), $mode)) {
            return false;
        }
        return @mkdir($dir, $mode);
    }
}

//使用方法
//引入本类,直接new copyFile('要复制谁','复制到那');
//$file = new CopyFile('./10010','./10010copy');
?>

0 人点赞