![如何控制 ZIP 存档中的文件顺序?](https://linux22.com/image/1303736/%E5%A6%82%E4%BD%95%E6%8E%A7%E5%88%B6%20ZIP%20%E5%AD%98%E6%A1%A3%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E9%A1%BA%E5%BA%8F%EF%BC%9F.png)
答案1
7-zip 图形用户界面版本:
mimetype
从 EPUB 文件中提取mimetype
在 EPUB 文件中删除- 重命名
mimetype
为!mimetype
- 添加
!mimetype
到 EPUB 文件 - 重命名
!mimetype
为mimetype
EPUB 文件内部
7-zip 简单拖放版本:
去7-zip 下载页面并下载7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager
(不适用于稳定的 9.20,但适用于 9.38 beta 和 15.06 beta)。提取7za.exe
。将以下代码保存为repair.bat
文件:
7za x %1 mimetype -y
7za d %1 mimetype
move /y mimetype !mimetype
7za a %1 !mimetype
del /f !mimetype
7za rn %1 !mimetype mimetype
将7za.exe
和repair.bat
放在同一目录中,然后将您的 EPUB 文件拖到上面repair.bat
。
答案2
一种方法是:大多数归档器和归档工具都能够将其他文件项附加或添加到原始归档中。创建您的归档并将所需的项目放在顶部,然后将其他文件项添加到创建的归档中。我知道这在 Windows 自己的 ZIP 工具中有效。
看起来真正的答案超出了我的能力范围,这里是 C# 的答案 https://stackoverflow.com/questions/5898787/creating-an-epub-file-with-a-zip-library
HTML 版本 (使用 7z)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/
特别是这部分
2.打开 sample-photo-book 文件夹,先将文件 mimetype 复制到(空)存档中。3
.现在,将其他文件夹(META-INF 和 OEBPS)复制到存档中。
http://idpf.org/epub/30/spec/epub30-ocf.html#physical-container-zip
MIME 类型文件的内容不得包含任何前导填充或空格,不得以 Unicode 签名(或字节顺序标记)开头,并且 MIME 类型字符串的大小写必须与上面所述完全相同。此外,MIME 类型文件不得压缩或加密,并且其 ZIP 标头中不得有额外字段。
答案3
创建 EPUB 需要两个步骤,首先添加 mimetype 而不进行任何 (!) 压缩,然后添加其他文件/文件夹。因此,使用 7z 时,您可以执行以下命令:
7z a -mx=0 dummy.zip mimetype
为了能够使用通配符 *,您应该将文件 mimetype 移动到另一个文件夹并开始第二步:
7z a -r dummy.zip *
然后将 ZIP 重命名为 EPUB 就可以了!
答案4
使用 winrar 对我来说很管用。我将 mimetype 添加到 zip 存档(未压缩!),然后添加其余文件夹,常规压缩。
对于我来说,此解决方案不适用于 7-zip,因为它不断重新排序文件。