Я использую mono и monobjc для разработки приложения для Mac OS X 10.6. Я добавляю некоторые файлы в zip-файл, используя ICSharpCode.SharpZip. Код как -
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
в ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray (System.String str) [0x00000] в: 0
в ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToArray (флаги Int32, строка System.String) [0x00000] в: 0
в ICSharpCode.SharpZipLib.Zip.ZipOutputStream.PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry entry) [0x00000] в: 0
at (обертка удаленного взаимодействия с проверкой) ICSharpCode.SharpZipLib.Zip.ZipOutputStream: PutNextEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry)
У меня есть следующие два вопроса -
- В чем причина вышеуказанного исключения.
- Похоже, ICSharp может быть не лучшим вариантом. Каковы лучшие альтернативы?