2015-11-15 3 views
2

Я использую библиотеку C# DotNetZip (Ionic.Zip и Ionic.Zlib) для создания книги из каталога. Каталог выглядит следующим образом:Файл mimetype имеет дополнительное поле длины n. Использование функции дополнительного поля в формате ZIP не разрешено для файла mimetype

BookName 
| 
|___content/ 
|  images/ 
|  css/ 
|  (html pages, .ops, .ncx) 
| 
|___META-INF/ 
|  container.xml 
| 
|___mimetype 

Код для создания архива выглядит следующим образом:

using (ZipFile zip = new ZipFile(pathTemp + ".epub")) 
{ 
    zip.RemoveSelectedEntries("*.*"); 
    zip.AddFile(mimetype, "").CompressionLevel = CompressionLevel.None; 
    zip.AddDirectory(pathTemp + "\\content", "content"); 
    zip.AddDirectory(pathTemp + "\\META-INF", "META-INF"); 
    zip.Save(); 
} 

Когда я запускаю его через EPUB Validator, он выдает эту ошибку:

The mimetype file has an extra field of length 36. The use of the extra field feature of the ZIP format is not permitted for the mimetype file.

I 'm не сжимает файл mimetype, поэтому я не знаю, что происходит.

ответ

2

Возможно, это как-то связано с storing dates - в описании этой функции в документе упоминается «дополнительное поле». Попробуйте указать EmitTimesInWindowsFormatWhenSaving = false (по умолчанию это значение true) и посмотреть, разрешает ли он вашу проблему.

+0

Все, что я сделал - поиск документов с помощью [этого запроса] (https://www.google.co.nz/search?hl=ru&q=site:dotnetzip.herobo.com+extra+field). Может быть полезно для вас в следующий раз;) – torvin