zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SpringCloud学习----阳哥(十一)
    SpringCloud学习----阳哥(十)
    SpringCloud学习----阳哥(九)
    SpringCloud学习----阳哥(八)
    SpringCloud学习----阳哥(七)
    SpringCloud学习----阳哥(六)
    Linux系统管理(软件安装篇)
    每次都能遇到的莫名其妙问题,谨记,速查手册
    Mysql 常用表达式
    精选博客收集
  • 原文地址:https://www.cnblogs.com/lewisli/p/4129043.html
Copyright © 2011-2022 走看看