3

Windows Phone 7 プロジェクトに zip ファイルがあります。Build Action を Content に、Copy to output directory を 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()。何が欠けているのか誰か教えてもらえますか? それを避けるために私は何ができますか?

4

3 に答える 3

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 からファイルのリストを読み取る方法の詳細については、このブログ投稿を参照してください。

于 2011-04-26T18:12:57.930 に答える
4

このユーティリティを確認してください。役立つ場合があります。

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

于 2011-04-26T04:15:32.700 に答える
1

これを行うには、SharpZipLib の SL ポートを使用しました。http://slsharpziplib.codeplex.com/ を参照してください。

それを使用する方法については、多くのサンプル コードが用意されています。また、ソースには優れたクイック スタートがあります

于 2011-04-26T06:35:31.407 に答える