- 28 Mar 2020
- 6,325
- 4,806
![a3b2jeo.png a3b2jeo.png](https://i.hizliresim.com/a3b2jeo.png)
Giriş
Merhaba, C# uygulama geliştirme serimizin yedinci yazısına hoş geldiniz.
Bu yazımızda dosya indirme programı yapacağız.
Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
İyi okumalar dilerim!
Yapılış
![jehxc0w.png jehxc0w.png](https://i.hizliresim.com/1mqk9j5.png)
İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Dosya İndirici" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
![ngvyatl.png](https://i.hizliresim.com/ngvyatl.png)
Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'THT Dosya İndirici' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.
2 adet GroupBox
2 adet Label
2 adet TextBox
1 adet Button
1 adet ProgressBar
![isnj0d1.png](https://i.hizliresim.com/isnj0d1.png)
Tasarımımızdan sonra kod kısmına geçiyoruz.
Burada 3 farklı metot oluşturuyoruz.
Bunlardan ilki button1'in click olayı, bunun için butonun üzerine çift tıklamanız yeterli.
C#:
private void button1_Click(object sender, EventArgs e)
{
string UrlAdresi = textBox1.Text;
// textBox1 içindeki yazıyı, UrlAdresi adındaki string değişkenine aktarıyoruz.
string DosyaIsmi = textBox2.Text;
// textBox2 içindeki yazıyı, DosyaIsmi adındaki string değişkenine aktarıyoruz.
Indır(UrlAdresi, DosyaIsmi);
// Burada UrlAdresi ve DosyaIsmi adlı değişkenlerimiz ile Indır() metotunu çalıştırıyoruz.
}
Button1'den sonra da global alana, "Kullanici" adına sahip bir WebClient nesnesi oluşturuyoruz.
C#:
WebClient Kullanici = new WebClient();
Sonrasında Indır adında bir metot oluşturuyoruz.
Metotun içine argüman olarak UrlAdresi ve DosyaIsmi adında 2 adet string değişkeni oluşturuyoruz.
C#:
private void Indır(string UrlAdresi, string DosyaIsmi)
{
try
{
Kullanici.DownloadProgressChanged += WebClient_DownloadProgressChanged;
Kullanici.DownloadFileAsync(new Uri(UrlAdresi), DosyaIsmi);
// İndirme işlemi için DownloadFileAsync metotumuzun içine UrlAdresi ve DosyaIsmi adlı değişkenlerimizi giriyoruz.
}
catch (Exception ex)
{
// Hata çıkarsa bu kısım çalışacak.
MessageBox.Show("İndirme Esnasında Bir Hata Oluştu!", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
// İlk kısmımız da hata mesajımızın içeriğini giriyoruz.
// İkinci kısımda hata mesajımızın başlığını giriyoruz.
// Üçüncü kısımda mesaj kutumuzun tuş seçeceğini "Ok (tamam)" şeklinde ayarlıyoruz.
// Dördüncü kısım hata mesajımızın ikonunu ayarlıyoruz. Bu bir hata mesajı olacağı için "Error" şeklinde girdik.
}
}
Son olarak WebClient_DownloadProgressChanged olay metotuna bakalım.
Bu kısımda, indirme değerini progressBar1 aracına yazdırma işlemini yapacağız.
C#:
private void WebClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
// Progress barın value değerini ProgressPercentage değerine eşitliyoruz.
groupBox2.Text = $"İlerleme Durumu | {e.ProgressPercentage}%";
// Burada groupBox2'nin yazı içeriğine, ilerleme durumu yazdırıyoruz.
}
![hkkx0nq.png](https://i.hizliresim.com/hkkx0nq.png)
Programı kullanmak isteyenler için indirme linki: THT_Dosya_Indirici.rar dosyasını indir - download
Virustotal 0/70
Video
Kapanış
Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekte ki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!