天天看點

使用webClient實作圖檔同步,異步下載下傳WebClient.DownloadFile 方法WebClient.DownloadFileAsync 方法

WebClient.DownloadFile 方法

将具有指定 URI 的資源下載下傳到本地檔案。

命名空間:System.Net

程式集:System(在 system.dll 中)

同步實作參考代碼:

  private void btnsyndownload_Click(object sender, EventArgs e)

        {

            File.Delete("download.jpg");

            try

            {

                if (!File.Exists("download.jpg"))

                {

    WebClient client = new WebClient();                                            client.DownloadFile("https://ss0.baidu.com/Po3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=181318733ad12f2ed105a8607fc0d5ff/94cad1c8a786c9171cc12b9dc53d70cf3ac75757.jpg", "download.jpg");

                  picpicture.Image = Image.FromFile("download.jpg");

                }

            }

                catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

WebClient.DownloadFileAsync 方法

将具有指定 URI 的資源下載下傳到本地檔案。此方法不會阻止調用線程。

命名空間:System.Net

程式集:System(在 system.dll 中)

異步實作參考代碼:

 File.Delete("download.jpg");

            try

            {

                if (!File.Exists("download.jpg"))

                {

                    WebClient client = new WebClient();

               client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);

client.DownloadFileAsync(newUri("https://ss0.baidu.com/Po3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/sign=181318733ad12f2ed105a8607fc0d5ff/94cad1c8a786c9171cc12b9dc53d70cf3ac75757.jpg"),"download.jpg");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

        void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)

        {           

            picpicture.Image = Image.FromFile("download.jpg"); 

        }

 簡單介紹一下WebClient:

    WebClient 類提供向 URI 辨別的任何本地、Intranet 或 Internet 資源發送資料以及從這些資源接收資料的公共方法。

    WebClient 類使用 WebRequest 類提供對資源的通路。WebClient 執行個體可以通過任何已向 WebRequest.RegisterPrefix 方法注冊的 WebRequest 子代通路資料。

    注意

    預設情況下,.NET Framework 支援以 http:、https:、ftp:、和 file: 方案辨別符開頭的 URI。 

    下面描述用于将資料上載到資源的 WebClient 方法: 

    OpenWrite  檢索一個用于将資料發送到資源的 Stream。

    OpenWriteAsync  檢索 Stream,它在不阻止調用線程的情況下将資料發送到資源。

    UploadData  将位元組數組發送到資源,并傳回包含任何響應的 Byte 數組。

    UploadDataAsync  在不阻止調用線程的情況下,将 Byte 數組發送到資源。

    UploadFile  将本地檔案發送到資源,并傳回包含任何響應的 Byte 數組。

    UploadFileAsync  在不阻止調用線程的情況下,将本地檔案發送到資源。

    UploadValues  将 NameValueCollection 發送到資源,并傳回包含任何響應的 Byte 數組。

    UploadValuesAsync  在不阻止調用線程的情況下,将 NameValueCollection 發送到資源,并傳回包含任何響應的 Byte 數組。

    UploadString  在不阻止調用線程的情況下,将 String 發送到資源。

    UploadStringAsync  在不阻止調用線程的情況下,将 String 發送到資源。 

    下面描述從資源下載下傳資料的 WebClient 方法: 

    OpenRead  從資源以 Stream 的形式傳回資料。

    OpenReadAsync  在不阻止調用線程的情況下,從資源傳回資料。

    DownloadData 從資源下載下傳資料并傳回 Byte 數組。

    DownloadDataAsync  在不阻止調用線程的情況下,從資源下載下傳資料并傳回 Byte 數組。

    DownloadFile  從資源将資料下載下傳到本地檔案。

    DownloadFileAsync  在不阻止調用線程的情況下,将資料從資源下載下傳到本地檔案。

    DownloadString  從資源下載下傳 String 并傳回 String。

    DownloadStringAsync  在不阻止調用線程的情況下,從資源下載下傳 String。