دانلود فایل از اینترنت در سی شارپ

در این مقاله قصد داریم نحوه دانلود فایل های موجود در اینترنت  و ذخیره آنها  بر روی هارد سیستم کاربر رو بررسی کنیم .

برای دانلود فایل و ذخیره بر روی کامپیوتر  یکی از راه های ساده استفاده از کتابخانه .Net می باشد ، پس اولین قدم افزودن کتابخانه زیر به پروژه می باشد :

using System.Net;

برای دانلود از کلاس WebClient استفاده خواهیم کرد. 

برای دانلود با استفاده از این کلاس دو روش وجود دارد :

1 – دانلود به صورت همزمان (Synchronously)

2 – دانلود به صورت غیر همزمان (Asynchronously)

دانلود به صورت همزمان (Synchronously) :

متد DownloadFile دو پارامتر از ورودی می گیرد که پارامتر اول آدرس فایل مورد نظر که بر روی اینترنت قرار دارد می باشد و پارامتر دوم ، مسیری می باشد که قصد ذخیره آن روی کامپیوتر خودتان را دارید می باشد .  در واقع تا زمانی که دانلود به پایان نرسد قادر به انجام هیچ کاری نخواهید بود .

زمانی که با استفاده از این روش (همزمان)  بخواهید دانلود را انجام دهید ، متد DownloadFile

thread اصلی پروژه را تا زمانی که دانلود تمام نشده و یا خطایی رخ ندهد بلاک می کند . 

قطعه کد زیر دانلود به روش همزمان می باشد :

 private void btnSync_Click(object sender, EventArgs e)
        {
            WebClient WebObj = new WebClient();
            WebObj.DownloadFile("http://www.google.com/images/srpr/logo11w.png", @"c:\\glogo.png");
        }

 

دانلود به صورت غیر همزمان (Asynchronously) :

با این روش دانلود بدون بلاک کردن thread اصلی پروژه انجام می گیرد ، برای دانلود غیر همزمان باید از متد غیر همزمان DownloadFileAsync استفاده کنید .

private void btnAsync_Click(object sender, EventArgs e)
        {
            WebClient WebObj = new WebClient();
            WebObj.DownloadFileAsync(new Uri("http://www.google.com/images/srpr/logo11w.png"), @"c:\\download\\gLogo.png");
        }

Uri مخفف Universal Resource Identifier می باشد .

با استفاده از uri می توانید اطلاعات در مورد آدرس داده شده بدست آورید ، به طور مثال می توانید آدرس سایت داده شده و ... را بدست آورید .

 میتوانید روند پیشرفت دانلود فایل  توسط Progress Bar به کاربر نمایش دهید همچنین می توانید با اتمام کامل دانلود پیغامی به کاربر نمایش دهید که به صورت زیر خواهد بود :

private void btnAsync_Click(object sender, EventArgs e)
        {
            WebClient WebObj = new WebClient();
            WebObj.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            WebObj.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Progress);
            WebObj.DownloadFileAsync(new Uri("http://www.google.com/images/srpr/logo11w.png"), @"c:\\download\\gLogo.png");
        }

 دانلود پروژه 


توسط : عثمان رحیمی  2 ماه قبل ، سه شنبه 4 شهریور 1393 ساعت 05:54  0  1639

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط