C# http 斷點續傳

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;

namespace XcDownLoadFile
{
    public class DownLoadFile
    {
        ///
        /// 下載文件方法
        ///
        /// 文件保存路徑和文件名
        /// 返回服務器文件名
        ///
        public bool DeownloadFile(string strFileName, string file)
        {
            bool flag = false;
            //打開上次下載的文件
            long SPosition = 0;
            //實例化流對象
            FileStream FStream;
            //判斷要下載的文件夾是否存在
            if (File.Exists(strFileName))
            {
                //打開要下載的文件
                FStream = File.OpenWrite(strFileName);
                //獲取已經下載的長度
                SPosition = FStream.Length;
                FStream.Seek(SPosition, SeekOrigin.Current);
            }
            else
            {
                //文件不保存創建一個文件
                FStream = new FileStream(strFileName, FileMode.Create);
                SPosition = 0;
            }
            try
            {
                //打開網絡連接
                HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.newxing.com/download/" + file);
                if (SPosition > 0)
                    myRequest.AddRange((int)SPosition);             //設置Range值
                //向服務器請求,獲得服務器的迴應數據流
                Stream myStream = myRequest.GetResponse().GetResponseStream();
                //定義一個字節數據
                byte[] btContent = new byte[512];
                int intSize = 0;
                intSize = myStream.Read(btContent, 0, 512);
                while (intSize > 0)
                {
                    FStream.Write(btContent, 0, intSize);
                    intSize = myStream.Read(btContent, 0, 512);
                }
                //關閉流
                FStream.Close();
                myStream.Close();
                flag = true;        //返回true下載成功
            }
            catch (Exception)
            {
                FStream.Close();
                flag = false;       //返回false下載失敗
            }
            return flag;
        }
    }
}
發佈了6 篇原創文章 · 獲贊 9 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章