mimetype文件有一个长度为n的额外字段。 mimetype文件不允许使用ZIP格式的额外字段功能

时间:2015-11-15 22:58:39

标签: c# zip compression epub

我正在使用C#库DotNetZip(Ionic.Zip和Ionic.Zlib)从目录生成电子书。目录如下所示:

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中运行时,会抛出此错误:

  

mimetype文件有一个长度为36的额外字段。对于mimetype文件,不允许使用ZIP格式的额外字段功能。

我没有压缩mimetype文件,所以我不知道发生了什么。

2 个答案:

答案 0 :(得分:2)

可能它与storing dates有关 - 文档提及"额外字段"在此功能的描述中。尝试指定EmitTimesInWindowsFormatWhenSaving = false(默认情况下为true),看看它是否可以解决您的问题。

答案 1 :(得分:0)

请参见https://ebooks.stackexchange.com/questions/6258/the-mimetype-file-has-an-extra-field-of-length-n-the-use-of-the-extra-field-fea

从.epub文件中删除了不需要的.epub格式(META-INF / calibre_bookmarks.txt)不需要的文件后,我遇到了同样的错误。重新压缩文件后,出现了以上错误消息。

使用-X参数压缩:

long

解决了问题。