我正在使用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:不支持CodePage 437 在System.Text.Encoding.GetEncoding(Int32代码页)[0x00000]中:0 at ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray(System.String str)[0x00000] in:0 at ICSharpCode.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(wrapper remoting-invoke-with-check)ICSharpCode.SharpZipLib.Zip.ZipOutputStream:PutNextEntry(ICSharpCode.SharpZipLib.Zip.ZipEntry)
我有以下两个问题 -
答案 0 :(得分:0)
我通过创建tar.gzip而不是使用zip来修复此问题。我使用ICSharp本身来创建tar文件。 Mac似乎不喜欢拉链。这也可能是因为我在Mac端使用Mono框架中的ICSharp并在Windows端使用ICSharp(从网上下载)。但是使用tar.gzip解决了这个问题。