如何在 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.Packaging
是 WindowsBase.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 编译方法异常