WebClient和WebRequest,下载文件> 4GB

时间:2012-05-23 11:14:25

标签: c# http

每当我尝试从服务器下载文件时(服务器在设备上,它不在互联网上)> 4Gb,传输实际上只传输了(FileSize)%4Gb。换句话说,对于刚刚超过4.5Gb的文件,我最终只传输了大约600mb的数据。

这与内容长度标题等有关,我认为,但我不确定具体的机制是什么。我尝试过使用WebClient和WebRequest,但两者都表现出相同的行为。

有没有人知道如何超越这个限制?这是我目前的循环:

 byte[] buffer = new byte[4096];

 WebRequest request = WebRequest.Create(new Uri(transferDetails.URL));

 using (WebResponse response = request.GetResponse())
 {
     using (Stream responseStream = response.GetResponseStream())
     {
         using (FileStream fileStream = new FileStream(actualPath, FileMode.Create, FileAccess.Write))
         {
             int count = 0;

             do
             {
                // Read a block.

                count = responseStream.Read(buffer, 0, buffer.Length);

                // Write out to the local file.

                if(count > 0)
                {
                    fileStream.Write(buffer, 0, count);
                }
         } while (count != 0);
     }
 }

}

0 个答案:

没有答案