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; } ?> 注意: 无论是复制还是删除,你都要有相应的文件操作权限。 |