我正在使用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文件,所以我不知道发生了什么 .
1 回答
可能它与storing dates有关 - 文档在此功能的描述中提到"extra field" . 尝试指定
EmitTimesInWindowsFormatWhenSaving = false
(默认情况下为true),看看它是否可以解决您的问题 .