亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#同步、異步遠程下載文件實例

2020-01-24 02:41:33
字體:
來源:轉載
供稿:網友

1、使用HttpWebRequest/HttpWebResonse和WebClient

復制代碼 代碼如下:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();

if (!response.ContentType.ToLower().StartsWith("text/"))
{
    //Value = SaveBinaryFile(response, FileName);
    byte[] buffer = new byte[1024];
    Stream outStream = System.IO.File.Create(FileName);
    Stream inStream = response.GetResponseStream();

    int l;
    do
    {
        l = inStream.Read(buffer, 0, buffer.Length);
        if (l > 0)
            outStream.Write(buffer, 0, l);
    }
    while (l > 0);

    outStream.Close();
    inStream.Close();
}

2、使用WebClient

復制代碼 代碼如下:

string url = "http://www.mozilla.org/images/feature-back-cnet.png";
WebClient myWebClient = new WebClient();
myWebClient.DownloadFile(url,"C://temp//feature-back-cnet.png");

3、異步下載例子

復制代碼 代碼如下:

        ///summary
        ///異步分析下載
        ///summary
        private void AsyncAnalyzeAndDownload(string url, string savePath)
        {
            this.uriString = url;
            this.savePath = savePath;

            #region 分析計時開始

            count = 0;
            count1 = 0;
            freq = 0;
            result = 0;

            QueryPerformanceFrequency(ref freq);
            QueryPerformanceCounter(ref count);

            #endregion

            using (WebClient wClient = new WebClient())
            {
                AutoResetEvent waiter = new AutoResetEvent(false);
                wClient.Credentials = CredentialCache.DefaultCredentials;
                wClient.DownloadDataCompleted += new DownloadDataCompletedEventHandler(AsyncURIAnalyze);
                wClient.DownloadDataAsync(new Uri(uriString), waiter);
                waiter.WaitOne();    阻止當前線程,直到收到信號
            }

        }

        ///summary
        ///異步分析
        ///summary
        protected void AsyncURIAnalyze(Object sender, DownloadDataCompletedEventArgs e)
        {
            AutoResetEvent waiter = (AutoResetEvent)e.UserState;
            try
            {
                if (!e.Cancelled && e.Error == null)
                {

                    string dnDir = string.Empty;
                    string domainName = string.Empty;
                    string uri = uriString;

                    獲得域名 [url]httpwww.sina.com[url]
                    Match match = Regex.Match(uri, @((http(s)))+[w-.]+[^]);, RegexOptions.IgnoreCase
                    domainName = match.Value;

                    獲得域名最深層目錄 [url]httpwww.sina.commail[url]
                    if (domainName.Equals(uri))
                        dnDir = domainName;
                    else
                        dnDir = uri.Substring(0, uri.LastIndexOf(''));

                    dnDir += '';

                    獲取數據
                    string pageData = Encoding.UTF8.GetString(e.Result);
                    Liststring urlList = new Liststring();

                    匹配全路徑
                    match = Regex.Match(pageData, @((http(s)))+((()+[w-.]+()))+[w-.]+.+( + ImageType + )); , RegexOptions.IgnoreCase
                    while (match.Success)
                    {
                        string item = match.Value;
                        短路徑處理
                        if (item.IndexOf(http) == -1 && item.IndexOf(https) == -1)
                            item = (item[0] == ''  domainName  dnDir) + item;

                        if (!urlList.Contains(item))
                        {
                            urlList.Add(item);
                            imgUrlList.Add(item);

                            實時顯示分析結果
                            AddlbShowItem(item);

                            邊分析邊下載
                            WebRequest hwr = WebRequest.Create(item);
                            hwr.BeginGetResponse(new AsyncCallback(AsyncDownLoad), hwr);
                            hwr.Timeout = 0x30D40;        默認 0x186a0 - 100000 0x30D40 - 200000
                            hwr.Method = POST;
                            hwr.C;
                            hwr.MaximumAutomaticRedirections = 3;
                            hwr.Accept =imagegif, imagex-xbitmap, imagejpeg, imagepjpeg, applicationx-shockwave-flash, applicationvnd.ms-excel, applicationvnd.ms-powerpoint, applicationmsword, ;
                            hwr.Accept = imagegif, imagex-xbitmap, imagejpeg, imagepjpeg, ;
                            IAsyncResult iar = hwr.BeginGetResponse(new AsyncCallback(AsyncDownLoad), hwr);
                            iar.AsyncWaitHandle.WaitOne();
                        }
                        match = match.NextMatch();
                    }
                }
            }
            finally
            {
                waiter.Set();

                #region 分析計時結束

                QueryPerformanceCounter(ref count1);
                count = count1 - count;
                result = (double)(count)  (double)freq;

                toolStripStatusLabel1.Text = 分析完畢!;
                toolStripStatusLabel2.Text = string.Format(  分析耗時{0}秒, result);
                Application.DoEvents();

                #endregion

                分析完畢
                isAnalyzeComplete = true;
            }
        }

        /// <summary>
        /// 異步接受數據
        /// </summary>
        /// <param name="asyncResult"></param>
        public  void AsyncDownLoad(IAsyncResult asyncResult) 
        {
            #region 下載計時開始

            if (cfreq == 0)
            {
                QueryPerformanceFrequency(ref cfreq);
                QueryPerformanceCounter(ref ccount);
            }

            #endregion

            WebRequest request = (WebRequest)asyncResult.AsyncState;
            string url = request.RequestUri.ToString();
            try
            {
                WebResponse response = request.EndGetResponse(asyncResult);
                using (Stream stream = response.GetResponseStream())
                {
                    Image img = Image.FromStream(stream);
                    string[] tmpUrl = url.Split('.');
                    img.Save(string.Concat(savePath, "/", DateTime.Now.ToString("yyyyMMddHHmmssfff"), ".", tmpUrl[tmpUrl.Length - 1]));
                    img.Dispose();
                    stream.Close();
                }
                allDone.Set();

                //從未下載的列表中刪除已經下載的圖片
                imgUrlList.Remove(url);

                //更新列表框
                int indexItem = this.lbShow.Items.IndexOf(url);
                if (indexItem >= 0 && indexItem <= this.lbShow.Items.Count)
                    SetlbShowItem(indexItem);
            }
            catch (Exception)
            {
                imgUrlList.Remove(url);
            }
        }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美久久一区二区| 日韩网站在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 欧美激情中文字幕乱码免费| 国产日韩亚洲欧美| 亚洲国产精品推荐| 欧美成人精品影院| 日韩风俗一区 二区| 狠狠久久亚洲欧美专区| 久久色免费在线视频| 日韩av电影在线网| 久久999免费视频| 亚洲欧美精品在线| 国产精品流白浆视频| 久久久精品久久久久| 欧美日韩国产成人高清视频| 久久久久国色av免费观看性色| 国产精品www色诱视频| 国产美女高潮久久白浆| 日韩av一区在线| 在线观看欧美日韩国产| 国产精品成人aaaaa网站| 国产日韩在线亚洲字幕中文| 日韩美女免费线视频| 成人在线中文字幕| 国产精品一区二区三区在线播放| 这里只有精品在线播放| 成人妇女免费播放久久久| 亚洲国产成人91精品| 亚洲女人被黑人巨大进入al| 久久综合电影一区| 欧美精品久久久久久久久久| 国产精品免费一区豆花| 精品爽片免费看久久| 亚洲图片在线综合| 欧美激情第一页xxx| 亚洲福利影片在线| 国产在线视频欧美| 欧美日韩国产精品专区| 亚洲字幕在线观看| 日韩国产一区三区| 国产成人精品久久亚洲高清不卡| 国产精品扒开腿做爽爽爽男男| 日韩精品在线播放| 亚洲欧洲第一视频| 乱亲女秽乱长久久久| 亚洲男人天堂手机在线| 伊人久久五月天| 欧美精品电影免费在线观看| 欧美巨猛xxxx猛交黑人97人| 久久这里只有精品视频首页| 亚洲成人中文字幕| 国产精品一区二区三区久久久| 国产精品一区二区久久国产| 精品视频偷偷看在线观看| 成人免费午夜电影| 亚洲男人天堂2023| 久久成人一区二区| 成人欧美一区二区三区黑人孕妇| 美女撒尿一区二区三区| 亚洲日韩第一页| 欧美高清第一页| 亚洲97在线观看| 尤物99国产成人精品视频| 97人洗澡人人免费公开视频碰碰碰| 精品国产一区二区三区四区在线观看| 一级做a爰片久久毛片美女图片| 国产精品自产拍在线观| 日韩欧美在线视频观看| 91九色精品视频| 亚洲国产又黄又爽女人高潮的| 最近2019年中文视频免费在线观看| 深夜成人在线观看| 国产精品中文字幕在线观看| 欧美丝袜一区二区三区| 欧美精品久久久久久久久| 91在线视频精品| 最新国产成人av网站网址麻豆| 亚洲国内高清视频| 欧美超级乱淫片喷水| 2019日本中文字幕| 国产伦精品免费视频| 亚洲精品资源美女情侣酒店| 久久网福利资源网站| 日韩a**中文字幕| 中文字幕久精品免费视频| 国产精品成人久久久久| 国产欧美一区二区三区视频| 亚洲综合中文字幕在线| 欧美性xxxx在线播放| 亚洲色无码播放| 亚洲激情第一页| www.欧美三级电影.com| 5566日本婷婷色中文字幕97| 亚洲日本欧美日韩高观看| 亚洲欧美一区二区三区在线| 日韩av在线最新| 国产一区二区三区三区在线观看| 亚洲国产成人精品女人久久久| 欧美最猛黑人xxxx黑人猛叫黄| 欧美性猛交xxxx乱大交极品| 992tv成人免费影院| 亚洲国产天堂久久国产91| 欧美日韩亚洲视频一区| 亚洲人成网7777777国产| 欧美激情第99页| 精品高清美女精品国产区| 日韩电影中文字幕av| 久久精品国产亚洲一区二区| 国产精品午夜一区二区欲梦| 亚洲欧洲偷拍精品| 中文字幕日本精品| 亚洲free性xxxx护士白浆| 欧洲中文字幕国产精品| 日韩在线观看高清| 成人精品网站在线观看| 欧美精品在线第一页| 精品久久久久人成| 91免费视频网站| 亚洲视频精品在线| 亚洲色图狂野欧美| 97成人超碰免| 日韩在线播放一区| 亚洲毛片在线免费观看| 亚洲a中文字幕| 国产精品嫩草影院一区二区| 欧美不卡视频一区发布| 国产精品igao视频| 日韩欧美大尺度| 成人免费视频xnxx.com| 国产91九色视频| 日本一本a高清免费不卡| 欧美日韩国产色视频| 国产综合视频在线观看| 欧美与黑人午夜性猛交久久久| 国产视频久久久久久久| 久久精品91久久久久久再现| 国产精品国产自产拍高清av水多| 亚洲美女性生活视频| 日韩中文字幕av| 国产成人一区二区| 国产精品ⅴa在线观看h| 91久热免费在线视频| 久久精品青青大伊人av| 亚洲国产欧美一区二区三区同亚洲| 日韩少妇与小伙激情| 欧美疯狂xxxx大交乱88av| 欧美一级淫片videoshd| 亚洲国产精品va在线看黑人| 亚洲欧洲午夜一线一品| 久久噜噜噜精品国产亚洲综合| 色噜噜狠狠狠综合曰曰曰| 国产视频精品va久久久久久| 久久频这里精品99香蕉| 亚洲高清福利视频| 亚洲成人网在线| 免费av一区二区| 2021国产精品视频| 久久久精品网站| 欧美激情国内偷拍| 久久久久久网址| 国产欧美精品久久久| 欧美另类老肥妇| 日韩亚洲欧美中文在线|