コード例 #1
0
        public string GetFilenameFromWebServer(DownloadLinkEnum downloadEnum)
        {
            try
            {
                var          request                = WebRequest.Create(GetEnumDescription(downloadEnum));
                var          response               = request.GetResponse();
                var          contentDisposition     = response.Headers["Content-Disposition"];
                const string contentFileNamePortion = "filename=";
                var          fileNameStartIndex     = contentDisposition.IndexOf(contentFileNamePortion, StringComparison.InvariantCulture) + contentFileNamePortion.Length;

                var originalFileNameLength = contentDisposition.Length - fileNameStartIndex;
                var originalFileName       = contentDisposition.Substring(fileNameStartIndex, originalFileNameLength);

                char[] trims   = { '"' };
                var    insert_ = originalFileName.Replace(" ", "_");

                var removefront = insert_.TrimStart(trims);

                originalFileName = removefront.TrimEnd(trims);

                return(originalFileName);
            }
            catch (NullReferenceException)
            {
                return(downloadEnum.ToString() + ".exe");
            }
            catch (WebException)
            {
                return(downloadEnum.ToString());
            }
        }
コード例 #2
0
        string GetEnumDescription(DownloadLinkEnum enumValue)
        {
            var type       = typeof(DownloadLinkEnum);
            var memInfo    = type.GetMember(enumValue.ToString());
            var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

            return(((DescriptionAttribute)attributes[0]).Description);
        }
コード例 #3
0
        private void DownloadFile(DownloadLinkEnum downloadEnum)
        {
            Uri url = new Uri(GetEnumDescription(downloadEnum));

            var downloadpath = FilePathBox.Text = DefaultPathLocation + "\\" + GetFilenameFromWebServer(downloadEnum);

            webClient.DownloadFileAsync(url, downloadpath);

            currentDownload = downloadEnum;
        }