[代码片段] PHP 拷贝文件夹 删除文件夹

2013.05.24

复制一个文件夹,搜了一下网上写的一些感觉比较繁琐,于是自己写一个。感觉还不错,放上来分享一下。

将一个文件夹复制到另外一个文件夹下面.

<?php

function copy_folder($from, $to)

{

    //处理win下的目录分隔符转换为统一的 /

    $from = str_replace('\\', '/', $from);

    $to = str_replace('\\', '/', $to);

    //获得要复制的文件夹名称,并在目标文件夹中创建(当然是不存在的时候)

    $dir_name = array_pop(explode('/', $from));

    file_exists($to.'/'.$dir_name) || mkdir($to.'/'.$dir_name);

    //获得文件夹下的所有直接的子文件夹和子文件,glob() 这是个核心

    $child_dir_array = glob($from.'/*');

    foreach ($child_dir_array as $v) {

        //复制文件和文件夹

        if (is_file($v)) {

            $file_name = array_pop(explode('/', $v));

            copy($v, $to.'/'.$dir_name.'/'.$file_name);

        } else {

            copy_folder($v, $to.'/'.$dir_name);

        }

    }

}

//E盘下面的memcached下面就多了个contraller文件夹了

copy_folder('D:/message/contraller','E:/memcached');

下面是删除文件夹,因为rmdir只能删除空的目录,所以有了下面这个了

<?php

function remove_dir($dir)

{

    foreach (glob($dir.'/*') as $file) {

        if (is_dir($file)) {

            remove_dir($file);

        } else {

            unlink($file);

        }

    }

    rmdir($dir);

}
Comments
Write a Comment