Vb.Net FTP dosya indirme.

30/10/2016, 00:52

Mettleshade

Yaptım. Yetkili birisi konuyu silerse güzel olur
30/10/2016, 11:45

ozanakkaya

Merhaba. Sorunuzu çözmüş olabilirsiniz ancak mesajınızın tamamını değiştiremezsiniz. 
Mesajınızı değiştirmek yerine,  bulduğunuz çözümü yeni mesaj olarak yazsanız, benzeri sorun yaşayanlar okuyup çözüm olarak kullansalardı daha iyi olmaz mıydı?

Site Kuralları.
15-) Konu eklendikten sonra, konu başlığının ve/veya mesajınızın tamamını “çözüldü”, “gerek kalmadı”, “iptal” vb. şekilde değiştirmek yasaktır. Konu başlığındaki ve/veya mesajdaki imla hatalarını düzeltebilirsiniz ancak konu başlığının ve/veya mesaj içeriğinin tamamını değiştiremezsiniz.
30/10/2016, 11:46

alpeki99

İhtiyacı olan üyelerimiz için şu şekilde çözüm üretebilirler:

Bir tane form üzerine buton ve progressbar ekleyin. İsimleri btnIndir ve prgIndirmeSureci olacak. Butonun click olayına aşağıdaki kodu ekleyin:

Dim client As WebClient = New WebClient
   AddHandler client.DownloadProgressChanged, AddressOf client_ProgressChanged
   AddHandler client.DownloadFileCompleted, AddressOf client_DownloadCompleted
   client.DownloadFileAsync(New Uri("http://www.adres.com/IndirilecekDosya.rar"), Application.StartupPath + "\\DosyaninYeniAdi.rar")
   btnIndir.Text = "İndirme devam ediyor..."
   btnIndir.Enabled = False

Burada kullandığımız WebClient kütüphanesi için Import etmemiz gereken kütüphane ise System.Net olacak. Dosyanın adresini ve indirilecek yeri kendinize göre revize edersiniz.

Burada iki tane olay tanımlandı:
client_ProgressChanged ile client_DownloadCompleted ise şu şekilde olacak:


Private Sub client_ProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)

   Dim bytesIn As Double = Double.Parse(e.BytesReceived.ToString())
   Dim totalBytes As Double = Double.Parse(e.TotalBytesToReceive.ToString())
   Dim percentage As Double = bytesIn / totalBytes * 100

   prgIndirmeSureci.Value = Int32.Parse(Math.Truncate(percentage).ToString())

 End Sub

Private Sub client_DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)

   MessageBox.Show("İndirme işlemi tamamlandı")
   btnIndir.Text = "İndir"
   btnIndir.Enabled = True

 End Sub

client_ProgressChanged ile dosya indirirken indirme oranına göre progressbar değerini arttırıyoruz. client_DownloadCompleted ile ise indirme işlemi tamamlanınca indirme tamamlandı diye mesaj verecek.