C# Http文件下载公共类(支持断点续传)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.IO;
 6 using System.Net;
 7 
 8 namespace XcDownLoadFile
 9 {
10     public class DownLoadFile
11     {
12         ///
13         /// 下载文件方法
14         ///
15         /// 文件保存路径和文件名
16         /// 返回服务器文件名
17         ///
18         public bool DeownloadFile(string strFileName, string file)
19         {
20             bool flag = false;
21             //打开上次下载的文件
22             long SPosition = 0;
23             //实例化流对象
24             FileStream FStream;
25             //判断要下载的文件夹是否存在
26             if (File.Exists(strFileName))
27             {
28                 //打开要下载的文件
29                 FStream = File.OpenWrite(strFileName);
30                 //获取已经下载的长度
31                 SPosition = FStream.Length;
32                 FStream.Seek(SPosition, SeekOrigin.Current);
33             }
34             else
35             {
36                 //文件不保存创建一个文件
37                 FStream = new FileStream(strFileName, FileMode.Create);
38                 SPosition = 0;
39             }
40             try
41             {
42                 //打开网络连接
43                 HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.newxing.com/download/" + file);
44                 if (SPosition > 0)
45                     myRequest.AddRange((int)SPosition);             //设置Range值
46                 //向服务器请求,获得服务器的回应数据流
47                 Stream myStream = myRequest.GetResponse().GetResponseStream();
48                 //定义一个字节数据
49                 byte[] btContent = new byte[512];
50                 int intSize = 0;
51                 intSize = myStream.Read(btContent, 0, 512);
52                 while (intSize > 0)
53                 {
54                     FStream.Write(btContent, 0, intSize);
55                     intSize = myStream.Read(btContent, 0, 512);
56                 }
57                 //关闭流
58                 FStream.Close();
59                 myStream.Close();
60                 flag = true;        //返回true下载成功
61             }
62             catch (Exception)
63             {
64                 FStream.Close();
65                 flag = false;       //返回false下载失败
66             }
67             return flag;
68         }
69     }
70 }
View Code

感谢:http://www.cnblogs.com/skyay/p/3880221.html

原文地址:https://www.cnblogs.com/lewisli/p/4129043.html