WebClient.DownloadData
, спецификация содержит небольшой образец.Возможно, более эффективно использовать WebRequest.GetResponseStream
и сохранять порцию данных по порциям, но вам придется правильно подготовить WebRequest
самостоятельно.
Обновлено
Если вам нужно загрузить файлы размером 3-4 ГБ, вы должны сделать гораздо больше, чем предлагает .Net Framework.WebClient не подлежит сомнению, поскольку он возвращает содержимое в виде одного монолитного байта [].Даже если предположить, что VAS (виртуальное адресное пространство) имеет 4 ГБ для записи этих загрузок, .Net не может выделить что-нибудь больше 2 ГБ (также на x64).Таким образом, вы должны использовать потоки, как в GetResponseStream ().
Во-вторых, вы должны использовать единицы измерения диапазона HTTP в своем запросе согласно HTTP / 1.1 разделу 3.12 .Ваш запрос должен содержать Content-Range
заголовков, чтобы можно было возобновить прерванную загрузку.И, конечно же, ваш целевой сервер должен будет принять и распознать эти заголовки и, возможно, ответить prpoer accept-ranges
, что делают несколько серверов.
Ваша тарелка заполнена, загрузка 4Gb совсем не тривиальна.