我的Windows Phone 7项目中有一个zip文件。我已将Build Action to Content和Copy to output目录设置为Always。 zip文件包含文件夹结构。我希望这完全复制,因为它在我的电话项目中。我正在使用SharpZipLib。这是代码: -
Stream stremInfo = Application.GetResourceStream(new Uri("xip.zip", UriKind.Relative)).Stream;
new FastZip(). ExtractZip(stremInfo,
"",FastZip.Overwrite.Always,null,null,null,true,true);
但是在调用ExractZip时出现错误。我得到的例外是“MethodAccessException
”。无法致电GetFullPath()
。任何人都可以让我知道我错过了什么?我该怎么做才能避免它?
答案 0 :(得分:7)
如果您知道Zip中需要哪些文件,则无需使用其他库。您可以使用App.GetResourceStream手机API访问Zip并获取文件。
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
WebClient client = new WebClient();
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
client.OpenReadAsync(new Uri("http://www.foo.com/pictures.zip"));
}
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
StreamResourceInfo info = new StreamResourceInfo(e.Result,"");
StreamResourceInfo pic = App.GetResourceStream(info, new Uri("IMG_1001.jpg", UriKind.Relative));
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(pic.Stream);
img.Source = bitmap;
}
有关阅读Zip文件列表的更多信息,请查看this blog post。
答案 1 :(得分:4)
查看此实用程序,它可能会帮助您。
http://www.sharpgis.net/post/2009/04/22/REALLY-small-unzip-utility-for-Silverlight.aspx
答案 2 :(得分:1)
我使用了SharpZipLib的SL端口来执行此操作 - 请参阅http://slsharpziplib.codeplex.com/
有许多示例代码可用于如何使用它 - 以及源代码中的快速入门 - http://slsharpziplib.codeplex.com/SourceControl/changeset/view/75568#1416103