Skip to main content
 首页 » 编程设计

c#之WebClient、Zip、Windows 8 Metro 中的隔离存储

2024年02月23日30jackei

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

我需要

  1. 从互联网下载 s Zip 文件
  2. 解压到隔离存储
  3. 阅读解压后的xml文件和图片

问题

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

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

请您参考如下方法:

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

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

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

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