Macos Mac上的Zip文件使用ingicsharp

Macos Mac上的Zip文件使用ingicsharp,macos,mono,sharpziplib,Macos,Mono,Sharpziplib,我正在使用mono和monobjc开发一个在MacOSX10.6上运行的应用程序。我正在使用ICSharpCode.SharpZip向zip文件添加一些文件。守则如下— var ms = new MemoryStream(); var zipStream = new ZipOutputStream(ms); zipStream.PutNextEntry(new ZipEntry(Path.GetFileName(file)) {DateTime = File.GetCreat

我正在使用mono和monobjc开发一个在MacOSX10.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:不支持代码页437 在System.Text.Encoding.GetEncoding(Int32代码页)[0x00000]中:0 位于:0中的ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray(System.String str)[0x00000] 在:0中的ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray(Int32标志,System.String str)[0x00000]处 在ICSharpCode.SharpZipLib.Zip.ZipOutputStream.PUTNEXENTRY(ICSharpCode.SharpZipLib.Zip.ZipEntry条目)[0x00000]中:0 在(包装器远程处理调用时加检查)ICSharpCode.SharpZipLib.Zip.ZipOutputStream:PutNextEntry(ICSharpCode.SharpZipLib.Zip.ZipEntry)

我有以下两个问题:

  • 导致上述异常的原因是什么
  • 看起来ICSharp可能不是最好的选择。更好的选择是什么
    我通过创建tar.gzip而不是使用zip修复了这个问题。我使用ICSharp本身来创建tar文件。Mac似乎不喜欢zip。这也可能是因为我在Mac端的Mono框架中使用ICSharp,在windows端使用ICSharp(从web下载)。但是使用tar.gzip解决了这个问题。

    您是否尝试从控制台应用程序中隔离并运行相同的代码?出现错误了吗?@Laurent-我试过两次,效果很好。正如我所说,这种情况并不总是发生,有时也会发生。