【问题标题】:Is there a way to download a file without Webclient in Silverlight?有没有办法在 Silverlight 中下载没有 Webclient 的文件?
【发布时间】:2012-07-23 12:49:44
【问题描述】:

我的情况是,我必须将一个文件下载到 Bytearray 并对该字节数组进行一些更改,同时我必须下载另一个大文件并将第一个文件与修改后的字节合并到其中苍蝇并使用 MediaElement 播放它。

使用 Webclient 我可以下载文件,但 webclient 仅在文件下载完成后才允许我访问其 dwonloaded bytearray。

有没有办法在 Silverlight 中下载文件并动态修改文件的字节数组。

我不能使用 Sockets,我只能从 Web 服务器下载文件。

感谢各位大师的帮助

【问题讨论】:

  • “即时”是什么意思?听起来您认为对下载的内容进行更改会自动返回服务器……任何客户端/服务器通信都将分块进行。 WebClient 也不例外。您可以在收到这些块时对其进行处理;但是,如果您希望一次获取一个字节,那么套接字通常不会发生这种情况。

标签: c# silverlight bytearray webclient


【解决方案1】:

我看不出 Webclient 有什么问题。

您应该将 WebClients 的结果复制到字节数组中。 下载完每个文件后,您可以合并这些字节数组。

byte[] bytes;
public void DownloadFile()
{
    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += (s, e) =>
       {
           Stream stream = e.Result;
           MemoryStream ms = new MemoryStream();
           stream.CopyTo(ms);
           bytes = ms.ToArray();
       };
    webClient.OpenReadAsync(new Uri("http://myurl.com/file.zip"), UriKind.Absolute);
}

【讨论】:

  • 这是我的问题,我等不及要下载第二个文件了。我的第一个文件只有 150kb,第二个文件大约 400mb。 webclient 的问题是只有在下载完所有内容后才能访问流。
  • 我不确定我是否理解您要执行的操作。您不能同时启动 2 个 WebClients 吗?您能否更准确地说明您想要实现的目标?
猜你喜欢
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 2014-02-20
  • 2018-12-17
  • 1970-01-01
相关资源
最近更新 更多