public static function remove(string $dir = '', bool $emptyOnly = false): bool
    {
        $ret = true;
        $dir = static::normalizePath($dir);

        if (static::exists($dir)) {
            if ($handle = @\opendir($dir)) {
                while (false !== ($item = @\readdir($handle))) {
                    if ($item !== '.' && $item !== '..') {
                        $item = $dir.DIRECTORY_SEPARATOR.$item;
                        \is_dir($item) ? static::remove($item) : @\unlink($item);
                    }
                }
                @\closedir($handle);
            }
            if ($emptyOnly === false) {
                @\rmdir($dir);
            }
            return true;
        }
        return $ret;
    }