1

サーバー (サーバーはデバイス上にあり、インターウェブ上ではありません) > 4Gb からファイルをダウンロードしようとすると、転送は実際には (FileSize) % 4Gb のように見えるものだけを転送します。言い換えれば、4.5Gb をわずかに超えるファイルの場合、約 600MB のデータしか転送できません。

content-length ヘッダーなどと関係があると思いますが、正確なメカニズムが何であるかはわかりません。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);
     }
 }

}

4

0 に答える 0