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