如何从网络下载 GZIP 文件到 Windows Phone 7 并解压缩内容
我需要从我的云服务器下载 zip(或 gzip)文件到 Windows Phone 7 文件系统,并解压缩 zip 中的文件夹内容。
通过我的搜索,我找不到完整的解决方案。我使用 HttpWebRequest 来获取二进制内容,但不知道如何进一步进行。本机 BinaryReader 不适用于 Windows Phone,并且 Windows Phone 7 的 HttpWebRequest.Headers 似乎没有用于指定编码类型的“添加”API。我还了解到 GZipStream 不适用于 Windows Phone 7。
以下是代码片段:
private void btnReadUrl_Click(object sender, RoutedEventArgs e)
{
System.Uri targetUri = new System.Uri("http://cloud/images.gz");
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(targetUri);
request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);
}
private void ReadWebRequestCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);
using (StreamReader httpwebStreamReader = new StreamReader(myResponse.GetResponseStream()))
{
string results = httpwebStreamReader.ReadToEnd();
//TextBlockResults.Text = results; //-- on another thread!
Dispatcher.BeginInvoke(() => txtResult.Text = results);
}
}
我是 c# 新手,我正在尝试将我的应用程序从 Android 复制到 Windows Phone。
您能否指导我了解需要什么 StreamReader 来读取 GZip 内容、将其写入文件系统并将内容解压缩到文件夹。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
进一步大卫的回答。您可以从 SharpZipLib “nofollow">NuGet。
然后使用如下代码。
Further to David's answer. You can get SharpZipLib from NuGet.
Then use code like the following.
您可能必须依赖第三方组件,例如 SharpZipLib
You may have to rely on a third-party component such as SharpZipLib
感谢您的回复。我正在寻找具有 Apache 许可证或类似许可证的库,以便我可以在我的市场应用程序中使用。
我找到了这个库 http://www.sharpgis.net/post/2010/08/25/REALLY-small-unzip-utility-for-Silverlight-e28093-Part-2.aspx 效果很好。
Thanks for the replies. I was looking for a library with Apache license or similar so that I can use in my market app.
I found this library http://www.sharpgis.net/post/2010/08/25/REALLY-small-unzip-utility-for-Silverlight-e28093-Part-2.aspx and it worked fine.
我为 WP7 开发了一个 HTTP 类,它使用 DotNetZip ( http://dotnetzip.codeplex.com/ ) 。
可以在此处下载:
https://mytoolkit.codeplex.com/
https://mytoolkit.svn.codeplex.com/svn/Network/
但是
Http
类需要 GZIP类(位于Libraries
目录中),因此最好下载整个源代码并将该库用作 DLL。I've developed a HTTP class for WP7 which uses DotNetZip ( http://dotnetzip.codeplex.com/ ).
It can be downloaded here:
https://mytoolkit.codeplex.com/
https://mytoolkit.svn.codeplex.com/svn/Network/
But the
Http
class needs the GZIP classes (found inLibraries
directory) so its best to download the whole source and use the library as DLL.