02/10/2018, 11:35
[C#] Download file from FTP Server With Progressbar
Bài viết hôm nay, mình sẽ tiếp tục hướng dẫn các bạn cách download một file từ FTP server có Progress bar bằng C# . Dưới dây là giao diện demo ứng dụng: Source code C#: using System; using System.Collections.Generic; using ...
Bài viết hôm nay, mình sẽ tiếp tục hướng dẫn các bạn cách download một file từ FTP server có Progress bar bằng C#.
Dưới dây là giao diện demo ứng dụng:
Source code C#:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DownloadFTPWithProgress { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Task.Run(() => Download()); } private void Download() { try { const string url = "ftp://192.168.0.3/data/testdownload.rara"; NetworkCredential credentials = new NetworkCredential("nguyenthao", "123456"); label1.BeginInvoke(new Action(() => { label1.Text = "Đang download file ..."; })); WebRequest sizeRequest = WebRequest.Create(url); sizeRequest.Credentials = credentials; sizeRequest.Method = WebRequestMethods.Ftp.GetFileSize; int size = (int)sizeRequest.GetResponse().ContentLength; progressBar1.Invoke( (MethodInvoker)(() => progressBar1.Maximum = size)); WebRequest request = WebRequest.Create(url); request.Credentials = credentials; request.Method = WebRequestMethods.Ftp.DownloadFile; using (Stream ftpStream = request.GetResponse().GetResponseStream()) using (Stream fileStream = File.Create(@"D: estdownload.rara")) { byte[] buffer = new byte[10240]; int read; while ((read = ftpStream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, read); int position = (int)fileStream.Position; progressBar1.BeginInvoke(new Action(() => { progressBar1.Value = position; })); if (position == size) { label1.BeginInvoke(new Action(() => { label1.Text = "Download finish!"; })); } } } } catch (Exception e) { MessageBox.Show(e.Message); } } } }
HAVE FUN :)
DOWNLOAD SOURCE