这不是我的代码,但我认为我会分享,因为它让我花了很长时间才找到。这是一个删除文件夹、所有子文件夹和文件的函数,一步到位。
只需告诉它你想要删除哪个目录,与执行此函数的页面相关。然后,如果你只想清空文件夹而不删除,请设置 $empty = true。如果你设置 $empty = false,或者只是简单地省略它,则给定目录也会被删除。
<?php
function deleteAll($directory, $empty = false) {
if(substr($directory,-1) == "/") {
$directory = substr($directory,0,-1);
}
if(!file_exists($directory) || !is_dir($directory)) {
return false;
} elseif(!is_readable($directory)) {
return false;
} else {
$directoryHandle = opendir($directory);
while ($contents = readdir($directoryHandle)) {
if($contents != '.' && $contents != '..') {
$path = $directory . "/" . $contents;
if(is_dir($path)) {
deleteAll($path);
} else {
unlink($path);
}
}
}
closedir($directoryHandle);
if($empty == false) {
if(!rmdir($directory)) {
return false;
}
}
return true;
}
}
?>