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

来源:互联网 发布:天猫双11销售数据 编辑:程序博客网 时间:2024/06/06 03:54
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;
}
?>

删除目录的代码:

<?php
function 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;
}
?>

注意:

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

原创粉丝点击