这是代码 :namespace ConA
{
    class Program
    {
        static void Main(string[] args)
        {
            Down down = new Down();
            down.Check();
        }
    }    public class Down
    {
        private long ftotal;  //当前下载长度
        private long total;   //文件总长度
        private string StrFileName;
        private string StrUrl;
        private long lStartPos; //已下载文件总长度
        private FileStream fs;
        private HttpWebRequest req;
        HttpWebResponse res;
        private Thread t;
        public Down()
        {
            ftotal = 0;
            total = 0;
            StrFileName = "D:\\ZJS\\NWHZJS.rar";
            StrUrl = "http://www.zjs100.com/NWHZJS.rar";
            lStartPos = 0;
        }
        public void Check()  //打开上次下载的文件或新建文件
        {
            try
            {
                req = (HttpWebRequest)HttpWebRequest.Create(StrUrl);
                req.Timeout = 600000;
                res = (HttpWebResponse)req.GetResponse();
                total = res.ContentLength;                if (File.Exists(StrFileName))
                {
                     fs = File.OpenWrite(StrFileName);
                    lStartPos = fs.Length;
                    if (total == lStartPos)
                    {
                        // Console.WriteLine("已下载完成,将重新下载!");
                        File.Delete(StrFileName);
                        lStartPos = 0;
                    }
                    else
                    {
                        //Console.WriteLine("已下载:" + lStartPos + "B");
                        ftotal = lStartPos;
                        fs.Seek(lStartPos, SeekOrigin.Current); //移动文件流中的当前指针
                    }
                }
                else
                {
                    fs = new FileStream(StrFileName, FileMode.Create); //新建一个文件
                }
                DownFile();
                Console.Read();
            }
            catch (Exception e)
            {
                if (t.IsAlive) t.Abort();
                fs.Close();
                Console.WriteLine("Error:" + e.ToString());
                Console.Read();
            }
        }        public void ThreadFunc()
        {
            while (true)
            {
                Console.WriteLine((int)(ftotal / 1000) + "kb/" + (int)(total / 1000) + "kb");
                Thread.Sleep(1000);
                Console.Clear();
            }
        }        private void DownFile()    //下载更新文件
        {
           /* ThreadStart ts = new ThreadStart(ThreadFunc);
            t = new Thread(ts);
            t.Start();*/            if (lStartPos > 0) req.AddRange((int)lStartPos);
            System.Text.Encoding utf8 = System.Text.Encoding.Default;
            Stream ns = res.GetResponseStream();
            byte[] nbytes = new byte[512];
            int nReadSize = 0;
            nReadSize = ns.Read(nbytes, 0, 512);
            while (nReadSize > 0)
            {
                fs.Write(nbytes, 0, nReadSize);
                ftotal += nReadSize;
                Console.Write((int)(ftotal / 1000) + "kb ");
                nReadSize = ns.Read(nbytes, 0, 512);    
            } 
            ns.Close();
            t.Abort();
            fs.Close();
             Console.WriteLine("下载完成!");
             SetupFile();
            /*if (ftotal == total)
            {
                
            }
            else
            {
                Console.WriteLine("坑爹啊!");
                Console.Read();
            }*/
        }        private void SetupFile()    //安装文件
        {
            try
            {
                string gbPath = StrFileName.Substring(0, StrFileName.LastIndexOf("\\"));
                BZip2.Decompress(File.OpenRead(StrFileName), File.Create(gbPath + "\\ZJS.exe"), true);                Process proc = new Process();
                if (File.Exists(gbPath + "\\NWHZJS.txt")) File.Create(gbPath + "\\NWHZJS.txt");
                if (File.Exists(gbPath + "\\OWHZJS.txt")) File.Create(gbPath + "\\OWHZJS.txt");
                File.Copy(gbPath + "\\NWHZJS.txt", gbPath + "\\OWHZJS.txt", true);  //保存新版本信息。
                Console.WriteLine("成功升级到最新系统!");
                proc = System.Diagnostics.Process.Start(gbPath + "\\ZJS.exe");
                Console.Read();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error:" + e.ToString());
                Console.Read();
            }
        }
    }
}要下载的文件是860多kB,正常下载没问题,但是当运行一会我把控制台关掉,然后再次运行,如此反复几次之后,出现下载的文件大小居然有1.8M 然后安装出错,这是为什么呢。这个断点续传到底问题出在哪里?在线等。