每当我尝试从服务器下载文件时(服务器在设备上,它不在互联网上)> 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);
}
}
}