例如: 现有文件夹为: /abc /a /b.xxx /c.xxx 实现将abc复制到xyz 实现结果如下 /xyz /a /b.xxx /c.xxx /** * 将一个文件夹下的所有文件及文件夹 * 复制到另一个文件夹里(保持原有结构) * * @param <string> $rootFrom 需要复制的文件夹路径(最好为绝对路径) * @param <string> $rootTo 需要复制的文件夹路径(最好为绝对路径) */ function cp_files($rootFrom,$rootTo){ $handle=opendir($rootFrom); while(false !== ($file = readdir($handle))){ //DIRECTORY_SEPARATOR 为系统的文件夹名称的分隔符 例如:windos为'/'; linux为'/' $fileFrom=$rootFrom.DIRECTORY_SEPARATOR.$file; $fileTo=$rootTo.DIRECTORY_SEPARATOR.$file; if($file=='.' || $file=='..'){ continue;} if(is_dir($fileFrom)){ mkdir($fileTo,0777); cp_files($fileFrom,$fileTo); }else{ @copy($fileFrom,$fileTo); } } }