显示下载进度条的下载文件代码

VB.NET


<!--StartFragment-->  Public Shared Sub DownFile(ByVal URL As String, ByVal Filename As String, ByVal Prog As ProgressBar)
    Dim Myrq As HttpWebRequest = HttpWebRequest.Create(URL)
    Dim myrp As HttpWebResponse = Myrq.GetResponse
    Dim totalBytes As Long = myrp.ContentLength
    Prog.Maximum = totalBytes
    Dim st As Stream = myrp.GetResponseStream
    Dim so As Stream = New FileStream(Filename, FileMode.Create)
    Dim totalDownloadedByte As Long = 0
    Dim by(1024) As Byte
    Dim osize As Integer = st.Read(by, 0, by.Length)
    While osize > 0
      totalDownloadedByte = osize + totalDownloadedByte
      Application.DoEvents()
      so.Write(by, 0, osize)
      Prog.Value = totalDownloadedByte
      osize = st.Read(by, 0, by.LongLength)
    End While
    so.Close()
    st.Close()
  End Sub 

C#
public static void DownFile( string URL, string Filename, ProgressBar Prog )
{
  System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL);
  System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse();
  long totalBytes = myrp.ContentLength;
  Prog.Maximum = (int)totalBytes;
  System.IO.Stream st = myrp.GetResponseStream();
  System.IO.Stream so = new System.IO.FileStream(Filename, System.IO.FileMode.Create);
  long totalDownloadedByte = 0;
  byte[] by = new byte[1024];
  int osize = st.Read(by, 0, (int)by.Length);
  while (osize > 0)
  {
    totalDownloadedByte = osize + totalDownloadedByte;
    Application.DoEvents();
    so.Write(by, 0, osize);
    Prog.Value = (int)totalDownloadedByte;
    osize = st.Read(by, 0, (int)by.Length);
  }
  so.Close();
  st.Close();
            }

你可能感兴趣的:(下载文件)