static function deleteDirectoryRecursively($path) { $stopIfErrorDuringDelete = false; if (is_dir($path)) { $pathContainsItems = Themes::listDirectoryContents($path); foreach ($pathContainsItems as $pathContainsItem) { Themes::deleteDirectoryRecursively($pathContainsItem); } $listOfItems = null; if (!@rmdir($path)) { if ($stopIfErrorDuringDelete) { $pathContainsItems = Themes::listDirectoryContents($directory); foreach ($pathContainsItems as $pathContainsItem) { $listOfItems .= $pathContainsItem . '; '; } die('Error in cleaning up previews directory. Tried to delete ' . $path . '. Contains: "' . $listOfItems . '"'); } } } else { if (@(!unlink($path))) { if ($stopIfErrorDuringDelete) { die('Error in cleaning up previews directory. Tried to delete ' . $path); } } } }