如何在 MonoTouch 中使用 System.IO.Packaging

Posted

技术标签:

【中文标题】如何在 MonoTouch 中使用 System.IO.Packaging【英文标题】:How to use System.IO.Packaging in MonoTouch 【发布时间】:2012-04-10 08:27:40 【问题描述】:

尝试在 MonoTouch 中使用 System.IO.Packaging 时遇到问题。 我找不到这个资源。 谁能告诉我在哪里可以找到这个资源?

【问题讨论】:

【参考方案1】:

据我所知,我在 MonoTouch 中不可用。

如果您需要 Zip 支持,SharpZibLib 可与 MonoTouch 一起使用。

如果您使用 SharpZipLib,请注意此问题:Monotouch - ICSharpCode.SharpZipLib giving an error

【讨论】:

【参考方案2】:

System.IO.PackagingWindowsBase.dll 的一部分,它不随 MonoTouch (5.x) 一起提供。

但是它的类型,例如 ZipPackage普通 zip 文件不完全兼容,因此如果您要处理 .zip 文件,这可能不是理想的选择。在这种情况下,您最好使用@Jamie 提到的替代库。

如果您真的想要一些特定类型 System.IO.Packaging,那么您可以尝试从 gihub 中提供的 Mono 源代码(开源)构建程序集。

【讨论】:

好的,谢谢;) 我现在使用 ICSharpCode SharpZipLib 解决了我的问题。【参考方案3】:

如果您想压缩/解压缩某些内容,您可能还想看看 System.IO.Compression.GZIPStream() 也可以在 MT 中使用。像这样使用它:

string sContent;
string sDest = "zipped file with text content.zip";
using ( FileStream oIn = File.OpenRead( sDest ) )
using ( MemoryStream oOut = new MemoryStream() )
using ( GZipStream oZip = new GZipStream( oIn, CompressionMode.Decompress ) )
using ( StreamReader oReader = new StreamReader( oOut ) )

    oZip.CopyTo( oOut );
    oOut.Seek( 0, SeekOrigin.Begin );
    sContent = oReader.ReadToEnd();

【讨论】:

我试过了,但我无法压缩文件夹和更多文件。但是谢谢你;)

以上是关于如何在 MonoTouch 中使用 System.IO.Packaging的主要内容,如果未能解决你的问题,请参考以下文章

Monotouch PInvoke System.EntryPointNotFoundException

System.Net.NetworkInformation IPv4Mask 在 MonoTouch 中不起作用?

MonoTouch 4.0 使用模拟器抛出 ReflectionTypeLoadException

尝试在 MonoTouch.CoreGraphics.CGContext.DrawPDFPage 中 JIT 编译方法异常

如何使用 Monotouch 在 iPad 故事板应用程序中以编程方式管理视图

如何使用 monotouch 在 uitableviewcell 中添加 uipickerview 作为子视图?