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

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


上一篇: 简单的字符串加密/解密类
下一篇: C#结束Windows进程
文章来自: 孟子e章
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 3391
发表评论
登录后再发表评论!