我正在使用 mono 和 monobjc 开发一个在 Mac OS X 10.6 上运行的应用程序。我正在使用 ICSharpCode.SharpZip 将一些文件添加到 zip 文件中。代码如下 -
var ms = new MemoryStream();
var zipStream = new ZipOutputStream(ms);
zipStream.PutNextEntry(new ZipEntry(Path.GetFileName(file))
{DateTime = File.GetCreationTime(file),
Size = new FileInfo(file).Length});
有时,并非总是如此,PutNewEntry 代码会引发以下异常 -
System.NotSupportedException:在 ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray (System.String str) [0x00000] 在 ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray (System.String str) [0x00000] 在 ICSharpCode 的 System.Text.Encoding.GetEncoding (Int32 代码页) [0x00000] 中不支持 CodePage 437 .SharpZipLib.Zip.ZipConstants.ConvertToArray (Int32 flags, System.String str) [0x00000] in :0 at ICSharpCode.SharpZipLib.Zip.ZipOutputStream.PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry entry) [0x00000] in :0 at (包装远程调用与检查)ICSharpCode.SharpZipLib.Zip.ZipOutputStream:PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry)
我有以下两个问题-
- 是什么导致上述异常。
- 看起来 ICSharp 可能不是最佳选择。有什么更好的选择?