Örnekler İle C# Geliştirme - Bölüm 7

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
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


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Dosya İndirici" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

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


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


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!​
 

Fatih.

Yeni üye
5 Haz 2023
13
7
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


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Dosya İndirici" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

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.


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


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!​
Eline Sağlık
 

invisible blood

Uzman üye
15 Eyl 2023
1,177
442
Hocam bişey sorcam da,, bu bütün seri yeterlimi üst düzey c# geliştirme için gerçekten hepsini okudum çok güzel bir seri.
 
Son düzenleme:

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
Hocam bişey sorcam da,, bu bütün seri yeterlimi üst düzey c# geliştirme için gerçekten hepsini okudum çok güzel bir seri.
Seri bittiğinde, eğer anlattığım her şeyi öğrendiyseniz üst düzey bilginiz olmuş olur ancak şu anki hali üst düzey değil. Şu anda ısınma turundayız diyebiliriz.
Ayrıca bu eğitimlere ek olarak C# Humanizer Kütüphanesinin Kullanımı! ve AngleSharp İle Web Kazıma Yapımı! tarzı kütüphaneleri anlattığım yazıları da okumak sizi çok ileriye götürür. Bu tarz daha çok kütüphane konusu gelecek.
 

invisible blood

Uzman üye
15 Eyl 2023
1,177
442
Seri bittiğinde, eğer anlattığım her şeyi öğrendiyseniz üst düzey bilginiz olmuş olur ancak şu anki hali üst düzey değil. Şu anda ısınma turundayız diyebiliriz.
Ayrıca bu eğitimlere ek olarak C# Humanizer Kütüphanesinin Kullanımı! ve AngleSharp İle Web Kazıma Yapımı! tarzı kütüphaneleri anlattığım yazıları da okumak sizi çok ileriye götürür. Bu tarz daha çok kütüphane konusu gelecek.
Çok teşekkür ederim hocam🙏🙏🙏
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.