在Silverlight 4中获取文件大小

时间:2011-05-11 11:13:28

标签: silverlight silverlight-4.0

我正在使用WebClient对象(从服务器到客户端)下载文件:

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

我想在开始下载操作之前知道文件大小。有没有办法在SL4中执行此操作?

感谢您的帮助。

吉拉德。

2 个答案:

答案 0 :(得分:1)

以下是您可以使用的一些空气密码(我自己没有测试过)

 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”相同的标头集,但不返回实际的实体主体。

但至少有一件事要注意,uri的现有cookie都不会在请求中发送。如果响应对cookie敏感(例如因为它需要会话ID),那么事情会变得更加复杂。

答案 1 :(得分:0)

我认为实现这一目标的唯一方法是发布尺寸。它可以编码,但也可以通过网络服务获得。