【问题标题】:WebClient, Zip, Isolated Storage in Windows 8 metroWindows 8 Metro 中的 WebClient、Zip、隔离存储
【发布时间】:2012-04-17 13:41:17
【问题描述】:

我有一个相当复杂的场景,我尝试从 Windows Phone 7 移植到 Windows 8。

我需要

  1. 从 Internet 下载 Zip 文件
  2. 解压到隔离存储
  3. 读取解压后的xml文件和图片

问题

  1. 在 Windows Phone 7 中,我使用了在 Windows 8 中不再可用的 WebClient。我尝试了 HttpClientHandler,但我只能将 ZIP 文件作为字符串下载,而且我不知道如何将其保存到独立存储中.

  2. 我找到了 ZipArchive 类,但它需要一个 IO.Stream,我不太确定如何使用它(如果我有文件保存的话 - 第 1 点)

【问题讨论】:

    标签: c# windows-8 microsoft-metro .net-4.5


    【解决方案1】:

    我也刚开始使用新的 API(所以这可能有点偏离),但基于文档:

    或者您可以只使用HttpClient.GetStreamAsync 方法来获取流(简单得多):

    HttpClient client = new HttpClient();
    Stream stream = await client.GetStreamAsync(uri);
    

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

    【讨论】:

    • 谢谢,我从没想过这么简单的解决方案。我有 20 多行使用后台传输和文件保存
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多