function full_rmdir($dir) { if (!is_writable($dir)) { if (!@chmod($dir, WT_PERM_EXE)) { return false; } } $d = dir($dir); while (false !== ($entry = $d->read())) { if ($entry == '.' || $entry == '..') { continue; } $entry = $dir . '/' . $entry; if (is_dir($entry)) { if (!full_rmdir($entry)) { return false; } continue; } if (!@unlink($entry)) { $d->close(); return false; } } $d->close(); rmdir($dir); return TRUE; }
/** * 针对目录所有的删除 * @param $dir 目录路径 * */ function full_rmdir($dir) { if (!is_writable($dir)) { if (!chmod($dir, 0777)) { return false; } } $dh = opendir($dir); while (FALSE !== ($entry = readdir($dh))) { if ($entry == '.' || $entry == '..') { continue; } $entry = $dir . '/' . $entry; if (is_dir($entry)) { if (!full_rmdir($entry)) { return false; } continue; } if (!@unlink($entry)) { //如果不能删除修改文件权限,再删除,如果不能修改文件权限报错!~ if (!is_writable($entry)) { if (!chmod($entry, 0777)) { echo 'not chmod!~'; } } if (!unlink($entry)) { echo "##Error:file-" . $entry . " is not person"; } echo "<br />DELETE -file:" . $entry; continue; } } //这里判断是否删除目录 closedir($dh); if (rmdir($dir)) { echo "<br /><font color=red>" . $dir . "</font>"; $entry = $dir; } return true; }
/** * Delete a directory * * @param string $name */ public function removeDirectory($name) { return full_rmdir($this->fileRoot . $this->normalizePath($name)); }
/** * Borra recursivamente el contenido de un directorio * * @param [dirname] ruta absoluta del directorio * * @return true or false */ function full_rmdir($dirname) { if ($dirHandle = opendir($dirname)) { $old_cwd = getcwd(); chdir($dirname); while ($file = readdir($dirHandle)) { if ($file == '.' || $file == '..') { continue; } if (is_dir($file)) { if (!full_rmdir($file)) { return false; } } else { if (!unlink($file)) { return false; } } } closedir($dirHandle); chdir($old_cwd); if (!rmdir($dirname)) { return false; } return true; } else { return false; } }