Получение размера файла в Silverlight 4 - PullRequest
2 голосов
/ 11 мая 2011

Я загружаю (с сервера на клиент) файл с помощью объекта WebClient:

WebClient wc = new WebClient();
wc.OpenReadCompleted += Load_TransferCompleted;
wc.OpenReadAsync(uriAddress, Filename);

Я хотел бы знать размер файла до начала операции загрузки.Есть ли способ сделать это в SL4?

спасибо за вашу помощь.

Гилад.

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Вот вам воздушный код, с которым вы можете поиграть (я сам не проверял)

 WebRequest req = WebRequestCreator.ClientHttp.Create(yourUri);
 req.Method = "HEAD";
 req.BeginGetResponse(ar =>
 {
     WebResponse resp = req.EndGetResponse(ar);
     int length = resp.ContentLength;

     // Do stuff with length
 }, null);

Используя стек ClientHttp, вы можете использовать запрос "HEAD", который вернет то же самоенабор заголовков как «GET», но не фактическое тело объекта.

Хотя есть одна вещь, на которую следует обратить внимание, ни один из существующих файлов cookie для URI не будет отправлен в запросе.Если ответ чувствителен к cookie-файлам (например, потому что ему нужен идентификатор сеанса), тогда все станет намного сложнее.

0 голосов
/ 11 мая 2011

Единственный способ сделать это возможным - опубликовать размер. Он может быть закодирован, но также доступен через веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...