Как извлечь zip-файл в Windows Phone 7? - PullRequest
3 голосов
/ 26 апреля 2011

У меня есть zip-файл в моем проекте Windows Phone 7.Я установил для параметра «Действие при построении» значение «Содержимое» и «Копировать в выходной каталог» значение «Всегда»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().Кто-нибудь может дать мне знать, что мне не хватает?Что я могу сделать, чтобы избежать этого?

Ответы [ 3 ]

7 голосов
/ 26 апреля 2011

Вам не нужно использовать другую библиотеку, если вы знаете, какие файлы вы хотите из Zip. Вы можете использовать телефонный API App.GetResourceStream, чтобы добраться до 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 ознакомьтесь с этим сообщением в блоге .

4 голосов
/ 26 апреля 2011

Проверьте эту утилиту, она может вам помочь.

http://www.sharpgis.net/post/2009/04/22/REALLY-small-unzip-utility-for-Silverlight.aspx

1 голос
/ 26 апреля 2011

Я использовал SL-порт SharpZipLib для этого - см. http://slsharpziplib.codeplex.com/

Существует множество примеров кода для его использования - и хороший быстрый старт в их источнике - http://slsharpziplib.codeplex.com/SourceControl/changeset/view/75568#1416103

...