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

C# mimetype文件有一个长度为n的额外字段。mimetype文件不允许使用ZIP格式的额外字段功能,c#,zip,compression,epub,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"))

我正在使用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();
}
生成存档的代码如下所示:

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();
}
当我通过运行时,它抛出以下错误:

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


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

可能与此有关-文档在该功能的描述中提到了“额外字段”。请尝试指定
emitTimesinWindowsFormatWhenSave=false(默认为true),然后查看它是否解决了您的问题。

请参阅

在从.epub文件中删除了一个不需要的文件后,我也出现了同样的错误,该文件不是.epub格式(META-INF/calibre_bookmarks.txt)所需要的。在我重新压缩文件后,我收到了上面的错误消息

使用-X参数压缩:

   -X     Do  not save extra file attributes (Extended Attributes on OS/2,
          uid/gid and file times on Unix).

解决了问题。

我所做的一切——用搜索工具搜索文档。下次可能对您有用;)