Основная реализация WebClient.DownloadFileAsync - PullRequest
0 голосов
/ 25 декабря 2011

Кто-нибудь знает, как реализован WebClient.DownloadFileAsync?У меня есть несколько вопросов по этому поводу:

  1. Сохраняется ли возвращенный поток в памяти до тех пор, пока не будет загружен весь файл, или он буферизован прямо во временный файл (а затем скопирован по правильному пути)?или прямо в указанный файл?
  2. Для написания простой службы отдыха WCF для ответа на эти вызовы потребуется следующее:

    set response headers - Content-Type: application/octet-stream  
                           Content-Length: 3 
                           Content-Disposition: Attachment;
                           filename=SomeFileName.jpeg 
    

    и возврат байта []

Я что-то упустил?

1 Ответ

0 голосов
/ 25 декабря 2011
  1. Поток ответов читается в чанках, и эти чанки напрямую записываются в поток выходного файла, а весь файл не загружается в память.
  2. Веб-клиенту действительно все равно, что делают заголовкисервер отправь.Он читает поток ответов и сохраняет его в выходной файл кусками.
...