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,  0512);
                 while (intSize >  0)
                {
                    FStream.Write(btContent,  0, intSize);
                    intSize = myStream.Read(btContent,  0512);
                }
                 // 關閉流
                FStream.Close();
                myStream.Close();
                flag =  true;         // 返回true下載成功
            }
             catch (Exception)
            {
                FStream.Close();
                flag =  false;        // 返回false下載失敗
            }
             return flag;
        }
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM