如何将下载分成两半

时间:2014-01-11 18:13:39

标签: c# file split download

我正在创建一个下载文件的程序,但我只想下载文件的前半部分,我想知道是否有任何方法可以做到这一点,最好是在C#中。

下载管理器仅下载文件的前半部分。我还需要代码来继续下半部分的下载(如果可能的话)。

2 个答案:

答案 0 :(得分:0)

您可以使用webrequest和webresponse,并使用ContentLength标头字段检查长度

 private void DownloadFile( string  someUrl)
            {

                byte[] result;
                byte[] buffer = new byte[4096];

                WebRequest wr = WebRequest.Create(someUrl);

                using (WebResponse response = wr.GetResponse())
                {
                    long contentLentgth = response.ContentLength;  
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        using (MemoryStream ms  = new MemoryStream())
                        {
                            int count = 0;
                            long totalBytes = 0;  
                            do
                            {
                                count = responseStream.Read(buffer, 0, buffer.Length);
                                totalBytes = totalBytes + count;  
                                ms.Write(buffer, 0, count);
                                using (FileStream file = new FileStream("file.bin", FileMode.Create, System.IO.FileAccess.Write))
                                {
                                    byte[] bytes = new byte[ms.Length];
                                    ms.Read(bytes, 0, (int)ms.Length);
                                    file.Write(bytes, 0, bytes.Length);
                                    ms.Close();
                                }
                                if (totalBytes>contentLentgth/2)
                                {
                                    break;  
                                }
                            } while (count != 0);

                        }
                    }
                }
            }

答案 1 :(得分:0)

我想您可以使用(通过 http 我假设)一个流来接收您的http请求正文

GetResponseStream

代码段:http://snipplr.com/view/64141/