0

MonoDroidにAndroid.Uitl.Zip名前空間がないようです。

Mono for Androidを使用してアセットをドキュメントフォルダーに解凍する方法はありますか?

Javaでの方法は次のとおりです。http: //www.jondev.net/articles/Unzipping_Files_with_Android_ (Programmatically )

4

1 に答える 1

1

私は同じことをしようとしていて、サードパーティのライブラリに頼らなければなりませんでした。他の人はSharpZipLibを提案していますが、オープンソースプロジェクトで作業していない場合はライセンスが問題になる可能性があります。DotNetZipもオープンソースですが、より寛容なライセンスがあり、MonoforAndroidのソースコードをあまり頭を悩ませることなく使用することができました。これまではzipの抽出にのみ使用してきたため、他の機能を使用する場合は、デバッグを行う必要がある場合があります。

これが私が使用した手順です:

  1. http://dotnetzip.codeplex.com/SourceControl/list/changesetsからソースコードを取得します。

  2. Zip、Zlib、およびCommonSrcディレクトリをAndroidMonoプロジェクトにコピーします。.csファイルのみをコピーし、サブディレクトリはコピーしないでください。

  3. ZipディレクトリからZipFile.SaveSelfExtractor.csファイルを削除します。

  4. ZipEntry.Extract.csのValidateOutput関数からこの行をコメントアウトします。

    outFileName = outFileName.Replace("/","\\");
    

それをすべて行ったら、抽出は非常に簡単でした。

using Ionic.Zip;
Zipfile zip = ZipFile.Read(archivepath);
zip.ExtractAll(extractpath);
于 2012-05-25T18:24:55.743 に答える