如何在 Windows Phone 7 中解压 zip 文件?

发布于 2024-11-03 21:52:11 字数 507 浏览 5 评论 0原文

我的 Windows Phone 7 项目中有一个 zip 文件。我已将“构建操作”设置为“内容”,并将“复制到输出目录”设置为“始终”。 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()。有人可以让我知道我错过了什么吗?我可以做什么来避免它?

I have a zip file in my Windows Phone 7 project. I have set the Build Action to Content and Copy to output directory to Always. The zip file contains the folder structure. I want this to be copied entirely as it is in my Phone Project. I am using SharpZipLib for this. This is the code :-

 Stream stremInfo = Application.GetResourceStream(new Uri("xip.zip", UriKind.Relative)).Stream;



        new FastZip(). ExtractZip(stremInfo,
            "",FastZip.Overwrite.Always,null,null,null,true,true);

However I get error when ExractZip is called. The exception I get is "MethodAccessException". Cannot call GetFullPath(). Can anybody let me know what am I missing? What can I do to avoid it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜妞爱困 2024-11-10 21:52:11

如果您知道想要从 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 中读取文件列表的更多信息,请查看 这篇博文

You dont need to use another library if you know what files you want out of the Zip. You can use the App.GetResourceStream phone API to reach into the Zip and get the file.

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;
}

For more informaiton on reading the list of files from th Zip check out this blog post.

ペ泪落弦音 2024-11-10 21:52:11

我使用 SharpZipLib 的 SL 端口来执行此操作 - 请参阅 http://slsharpziplib.codeplex.com/

有很多示例代码可用于说明如何使用它 - 并且在其源代码中提供了很好的快速入门 - http://slsharpziplib.codeplex.com/SourceControl/changeset/view/75568#1416103

I've used the SL port of the SharpZipLib to do this - see http://slsharpziplib.codeplex.com/

There's lots of example code available for how to use it - and a good quickstart in their source - http://slsharpziplib.codeplex.com/SourceControl/changeset/view/75568#1416103

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文