private string _getFileName(WebResponse res)
        {
            string result;

            if (res.Headers["Content-Disposition"] != null)
            {
                // File name header is set, extract actual file name
                result = res.Headers["Content-Disposition"].Substring(res.Headers["Content-Disposition"].IndexOf("filename=") + 10).Replace("\"", "");

                // Remove excessive `;` at end if present
                if (result.Substring(result.Length - 1) == ";")
                {
                    result = result.Substring(0, result.Length - 1);
                }

                // Remove file name encoding string at end if present
                if (result.Contains("; filename*=UTF-8"))
                {
                    result = result.Substring(0, result.IndexOf(".osz") + 4);
                }
            }
            else
            {
                // File name not set by server. Use beatmap id as fallback
                result = Convert.ToString(beatmapItemImporter.Beatmap.Id) + ".osz";
            }
            result = GlobalVar.PathSanitize(result);      // Issue #23: Replace invalid characters

            return(result);
        }