/// <summary>        /// 服务端:         /// </summary>        /// <param name="FileName">更新文件包名</param>        /// <param name="Offset">偏移</param>        /// <param name="Count">每次读取字节数 单位KB</param>        /// <returns>字节组</returns>        [WebMethod(Description = "<b>大文件下载</b> 测试")]        public byte[] getFile(string FileName, long Offset, int Count)        {            //指定下载文件夹+文件名            string strPath = @"E:\" + FileName;            if (Offset < 0) { Offset = 0; }            byte[] btBuf = new byte[Count];            if (System.IO.File.Exists(strPath))            {                System.IO.FileStream fs = new System.IO.FileStream(strPath, System.IO.FileMode.Open);                 if (Offset < fs.Length)                {                    if (0 < (int)(fs.Length - Offset) && (int)(fs.Length - Offset) < Count)                    {                        Count = (int)(fs.Length - Offset);                    }                    btBuf=new byte[Count];                    fs.Seek(Offset, System.IO.SeekOrigin.Begin);                    fs.Read(btBuf, 0, Count);                }                else                { btBuf = null; }                fs.Flush();                fs.Close();                fs.Dispose();                            }            return btBuf;        }
///客户端调用
private string DownLoadPath(string strClientFilePath, string fileName)    {        string result = "";        ws1.Service s1 = new ws1.Service();          //本地数据        System.IO.FileStream ns;        //文件保存路径        string strPath = strClientFilePath + @"" + fileName;        //源文件名        string serverFileName = @"Enterprise.msi";        //传输数据长度,每次取字节组大小        int count = 1024 * 100;               大文件发送 //申请内存,存放取回的数据        byte[] buffer = new byte[count];        //文件偏移        long offset = 0;        //取回数据字节长度        int bufferSize = 1;        //-------------        while (bufferSize > 0)        {                        //读取本地文件信息            ns = new System.IO.FileStream(strPath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);                        //获取本地数据长度,设定从服务器取数据偏移指针位置            offset = ns.Length;            //取服务端数据            buffer = s1.getFile(serverFileName, offset, count);            if (buffer!=null)            {                ns.Seek(offset, System.IO.SeekOrigin.Begin);                count = buffer.Length;                ns.Write(buffer, 0, count);            }            else            {                bufferSize = -1;                result = "Successful !";            }            ns.Flush();            ns.Close();            ns.Dispose();        }        return result;            }