PHP中如何复制或者删除一个目录

    技术2022-05-11  56

    PHP中如何复制或者删除一个目录

    PHP中的copy()函数是用来复制文件的,没有相应的复制目录的函数,其实这也很简单,主要就是利用mkdir()和copy()结合递归来实现,而对于删除,同样是利用rmdir()和unlink()结合递归来实现

    复制目录的代码:

    function copyDir($source, $destination){    $result = true;

        if(! is_dir($source))    {        trigger_error('Invalid Parameter', E_USER_ERROR);    }    if(! is_dir($destination))    {        if(! mkdir($destination, 0700))        {            trigger_error('Invalid Parameter', E_USER_ERROR);        }    }

        $handle = opendir($source);    while(($file = readdir($handle)) !== false)    {        if($file != '.' && $file != '..')        {            $src = $source . DIRECTORY_SEPARATOR . $file;            $dtn = $destination . DIRECTORY_SEPARATOR . $file;            if(is_dir($src))            {                copyDir($src, $dtn);            }            else            {                if(! copy($src, $dtn))                {                    $result = false;                    break;                }            }        }    }    closedir($handle);

        return $result;}?>

    删除目录的代码:

    <?phpfunction removeDir($dirName){    $result = false;

        if(! is_dir($dirName))    {        trigger_error('Invalid Parameter', E_USER_ERROR);    }

        $handle = opendir($dirName);    while(($file = readdir($handle)) !== false)    {        if($file != '.' && $file != '..')        {            $dir = $dirName . DIRECTORY_SEPARATOR . $file;            is_dir($dir) ? removeDir($dir) : unlink($dir);        }    }    closedir($handle);

        $result = rmdir($dirName) ? true : false;

        return $result;}?>

    注意:

    无论是复制还是删除,你都要有相应的文件操作权限。


    最新回复(0)