public static class DownLoadFile
     {
         /// <summary>
         /// 下载文件方法
         /// </summary>
         /// <param name="strLocalFileName">本地文件保存名称</param>
         /// <param name="strServerFileName">服务器文件名</param>
         /// <returns>true 下载成功 false 下载失败</returns>
         public static bool DeownloadFile(string strLocalFileName, string strServerFileName)
         {
             bool flag = false;
             //上次下载文件长度
             long SPosition = 0;
             //实例化流对象
             FileStream FStream;
             //判断要下载的文件夹是否存在
             if (File.Exists(strLocalFileName))
             {
                 //打开要下载的文件
                 FStream = File.OpenWrite(strLocalFileName);
                 //获取已经下载的长度
                 SPosition = FStream.Length;
                 FStream.Seek(SPosition, SeekOrigin.Current);
             }
             else
             {
                 //文件不保存创建一个文件
                 FStream = new FileStream(strLocalFileName, FileMode.Create);
                 SPosition = 0;
             }
             try
             {
                 //打开网络连接,file为文件名加后缀
                using( HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(strServerFileName))

     {
                 if (SPosition > 0)

      {

          //设置Range值
                     myRequest.AddRange((int)SPosition);            

      }
                 //向服务器请求,获得服务器的回应数据流
                 Stream myStream = myRequest.GetResponse().GetResponseStream();
                 //定义一个字节数据
                 byte[] btContent = new byte[1024];
                 int intSize = 0;
                 intSize = myStream.Read(btContent, 0, 1024);
                 while (intSize > 0)
                 {
                     FStream.Write(btContent, 0, intSize);
                     intSize = myStream.Read(btContent, 0, 1024);
                 }
                 //关闭流
                 FStream.Close();
                 myStream.Close();
                 flag = true;         //下载成功

      }
             }
             catch (Exception)
             {
                 FStream.Close();
                 flag = false;        //下载失败
             }
             return flag;
         }

 }

 

posted on 2012-12-10 11:43  梦幻花落  阅读(175)  评论(0)    收藏  举报