static function fileDeleteRecursive($dir)
{
// Do not delete symlinked files, only unlink symbolic links
if (is_link($dir)) {
return unlink($dir);
}
// Allow to delete symlinks even if the target doesn't exist.
if (!is_link($dir) && !file_exists($dir)) {
return true;
}
if (!is_dir($dir)) {
@chmod($dir, 0777);
return unlink($dir);
}
if (static::deleteDirContents($dir) === FALSE) {
return false;
}
@chmod($dir, 0777);
return rmdir($dir);
}