我使用mono和monobjc開發應用程序以在Mac OS X 10.6上運行。我使用ICSharpCode.SharpZip將一些文件添加到一個zip文件中。其代碼 -使用ICSharp在Mac上的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] in: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 entr Y)[0x00000]在:0 在(包裝遠程-調用與 - 檢查)ICSharpCode.SharpZipLib.Zip.ZipOutputStream:PutNextEntry(ICSharpCode.SharpZipLib.Zip.ZipEntry)
我有以下兩個問題 -
- 什麼是造成上述例外。
- 它看起來像ICSharp可能不是最好的選擇。有什麼更好的選擇?
您是否試圖從控制檯應用程序隔離並運行相同的代碼?錯誤是否出現? – 2011-05-20 08:27:09
@Laurent - 我試了兩次,它工作正常。也正如我所說,這並不總是發生,有時會發生。 – Prashant 2011-05-20 15:19:40