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

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

注意:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值