public static function removeDir($dir, $self = true) { try { $objects = scandir($dir); foreach ($objects as $object) { if ($object != '.' && $object != '..') { if (strtolower(filetype($dir . '/' . $object)) == 'dir') { FilesHelper::removeDir($dir . '/' . $object); } else { FilesHelper::deleteFile($dir . '/' . $object); } } } reset($objects); if ($self) { FilesHelper::deleteFolder($dir); } } catch (Exception $e) { throw new PermissionsException('Unable to remove the directory: ' . $dir); } }