木子屋 Dnawo's BLOG

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

👤 dnawo 📅 2009-05-26 👁 4091 👍 0 💬 0 🔄 来源:孟子e章
VB.NET

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();
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 简单的字符串加密/解密类 下一篇 → C#结束Windows进程