小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C# Http文件下載公共類(支持?jǐn)帱c(diǎn)續(xù)傳)

 windli筆記 2012-09-20
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
 
namespace XcDownLoadFile
{
    public class DownLoadFile
    {
        ///
        /// 下載文件方法
        ///
        /// 文件保存路徑和文件名
        /// 返回服務(wù)器文件名
        ///
        public bool DeownloadFile(string strFileName, string file)
        {
            bool flag = false;
            //打開上次下載的文件
            long SPosition = 0;
            //實(shí)例化流對(duì)象
            FileStream FStream;
            //判斷要下載的文件夾是否存在
            if (File.Exists(strFileName))
            {
                //打開要下載的文件
                FStream = File.OpenWrite(strFileName);
                //獲取已經(jīng)下載的長(zhǎng)度
                SPosition = FStream.Length;
                FStream.Seek(SPosition, SeekOrigin.Current);
            }
            else
            {
                //文件不保存創(chuàng)建一個(gè)文件
                FStream = new FileStream(strFileName, FileMode.Create);
                SPosition = 0;
            }
            try
            {
                //打開網(wǎng)絡(luò)連接
                HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create("http://www./download/" + file);
                if (SPosition > 0)
                    myRequest.AddRange((int)SPosition);             //設(shè)置Range值
                //向服務(wù)器請(qǐng)求,獲得服務(wù)器的回應(yīng)數(shù)據(jù)流
                Stream myStream = myRequest.GetResponse().GetResponseStream();
                //定義一個(gè)字節(jié)數(shù)據(jù)
                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);
                }
                //關(guān)閉流
                FStream.Close();
                myStream.Close();
                flag = true;        //返回true下載成功
            }
            catch (Exception)
            {
                FStream.Close();
                flag = false;       //返回false下載失敗
            }
            return flag;
        }
    }
}


(待研究)
我覺得這個(gè)不能實(shí)現(xiàn)斷點(diǎn)下載的, 應(yīng)該在 FStream.Write(btContent, 0, intSize);調(diào)用下Flush()方法才可以。你不調(diào)用的話就內(nèi)存里面一直都是512個(gè)字節(jié)的, 調(diào)用這個(gè)這個(gè)方法含義就是把字節(jié)寫進(jìn)文件里面,并清空內(nèi)存的中的buffer。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多