C# Windows 8 metro中的WebClient、Zip、独立存储

C# Windows 8 metro中的WebClient、Zip、独立存储,c#,windows-8,microsoft-metro,.net-4.5,C#,Windows 8,Microsoft Metro,.net 4.5,我有一个相当复杂的场景,我尝试从WindowsPhone7移植到Windows8 我需要 从internet下载s Zip文件 将其解压缩到独立存储 读取解压缩的xml文件和图像 问题 在WindowsPhone7中,我使用Windows8中不再提供的WebClient。我尝试了HttpClientHandler,但我只能将ZIP文件作为字符串下载,我不知道如何将其保存到独立存储中 我找到了ZipArchive类,但它需要一个IO.Stream,我不确定如何使用它(如果我让文件保存了一些HRE-

我有一个相当复杂的场景,我尝试从WindowsPhone7移植到Windows8

我需要

  • 从internet下载s Zip文件
  • 将其解压缩到独立存储
  • 读取解压缩的xml文件和图像
  • 问题

  • 在WindowsPhone7中,我使用Windows8中不再提供的WebClient。我尝试了HttpClientHandler,但我只能将ZIP文件作为字符串下载,我不知道如何将其保存到独立存储中

  • 我找到了ZipArchive类,但它需要一个IO.Stream,我不确定如何使用它(如果我让文件保存了一些HRE-point 1)


  • 我也刚刚开始使用新的API(因此这可能有点不合适),但基于文档:

    • (以及它的默认处理程序)从返回一个
    • 具有类型为的属性
    • 反过来又有一个方法,该方法返回您应该能够使用(尽管是间接地)传递给的结果
    您可以使用该方法获取流(更简单):


    如果这不起作用,那么您也可以将现在获得的字符串包装在一个中并传递给,但由于可能存在编码问题,这听起来有点不安全。

    我也只是从新的API开始(因此这可能有点不合适),但基于文档:

    • (以及它的默认处理程序)从返回一个
    • 具有类型为的属性
    • 反过来又有一个方法,该方法返回您应该能够使用(尽管是间接地)传递给的结果
    您可以使用该方法获取流(更简单):


    如果这不起作用,那么您也可以将现在获得的字符串包装在a中并传递给,但这听起来有点不安全,因为可能存在编码问题。

    谢谢,我从未想到过这么简单的解决方案。我有20多行使用后台传输和文件保存谢谢,我从来没有想过这么简单的解决方案。我有20多行使用后台传输和文件保存
    HttpClient client = new HttpClient();
    Stream stream = await client.GetStreamAsync(uri);