ZIPアーカイブ内のファイルを特定の順序にする必要がある場合があります(たとえば、現在、Zipの最初のエントリがファイルであることが必要なEPUBを作成していmimetype
ます)。Windowsでこれを行うにはどうすればよいですか?
現在、アーカイバとして7-Zipを使用していますが、ファイルの順序を制御するオプションが表示されません。これは7-zipで実行できますか?そうでない場合、どのようなオプションがありますか?
ZIPアーカイブ内のファイルを特定の順序にする必要がある場合があります(たとえば、現在、Zipの最初のエントリがファイルであることが必要なEPUBを作成していmimetype
ます)。Windowsでこれを行うにはどうすればよいですか?
現在、アーカイバとして7-Zipを使用していますが、ファイルの順序を制御するオプションが表示されません。これは7-zipで実行できますか?そうでない場合、どのようなオプションがありますか?
回答:
1つの方法は次のとおりです。ほとんどのアーカイバとアーカイブツールには、元のアーカイブに追加のファイルアイテムを追加または追加する機能があります。必要なアイテムを上部に持つアーカイブを作成し、作成したアーカイブに追加のファイルアイテムを追加します。これは、Windows独自のZIPツールで機能することを知っています。
本当の答えは私を超えているようです、ここではC# /programming/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
mimetypeファイルの内容には、先頭のパディングや空白を含めることはできません。Unicode署名(またはバイトオーダーマーク)で始めることはできません。また、MIMEタイプ文字列の大文字と小文字は上記のとおりである必要があります。さらに、MIMEタイプファイルは圧縮も暗号化もされてはならず、ZIPヘッダーに余分なフィールドがあってはなりません。
mimetype
でアーカイブを作成し、他のファイルを追加しました)が、成功しませんでした。mimetype
データは、ファイルに最初に来たが、ファイルテーブルには、アルファベット順にしているようです。
7z l filename.zip
はzipの内容を一覧表示していましたが、それらの順序(名前、パス、日付、サイズなど)が異なるようです。したがって、このコマンドラインを使用すると、zip内のファイルの実際の順序を判断するのに役立つ場合があります。
.epub
テキストエディタでを開き、ファイルテーブルを直接調べることでチェックしているので、このアプローチは単に私にとっては機能していないようです。Pythonハンマーを使用して問題を解決し、それで解決しないかどうかを確認します。
mimetype
EPUBファイルから抽出mimetype
EPUBファイルで削除mimetype
する!mimetype
!mimetype
EPUBファイルに追加!mimetype
を変更しmimetype
ます7-zipダウンロードページに移動してダウンロードします7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager
(安定版9.20では動作しませんが、9.38ベータ版および15.06ベータ版では正常に動作します)。抽出し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
。
EPUBの作成には2段階のプロセスが必要です。最初に(!)圧縮なしでmimetypeを追加し、次に他のファイル/フォルダーを追加します。したがって、7zを使用すると、次のコマンドを実行できます。
7z a -mx=0 dummy.zip mimetype
ワイルドカード*を使用できるようにするには、ファイルmimetypeを別のフォルダーに移動して、2番目のステップを開始する必要があります。
7z a -r dummy.zip *
その後、ZIPの名前をEPUBに変更します。
Epubcheck Version 3.0.1 ERROR: C:/MYSELF/Books/1984---George-Orwell/1984---George-Orwell.epub: Mimetype entry missing or not the first in archive
私の経験では、最も単純な答えは(Windows、7、64ビットの場合)、Windowの組み込みZip機能を使用することです。[送信]を使用してmimetypeを新しいzipフォルダーに送信し、7Zipを使用してMETA-INFとOEBPSを新しいzipに追加します。これは、最初にmimetypeファイルを順序付けるという点で常に機能するようです。7-zipのみでこの操作を実行できませんでした。(これはePUBS向けですが、他の分野でもシーケンシングに有効です。)
これが他の人の助けになることを願っています。
EPUBファイルで作業しているときにも同じ問題が発生しました。
Windows 7では、この奇妙なトリックで修正しました。この場合、すべてのファイルをzipに並べ替え、mimetypeを最上位のファイルにします(通常、サイズで並べ替えます)。次に、圧縮(zip)フォルダー(https://support.microsoft.com/en-us/help/14200/など)に送信する前に、すべてのファイルをカーソルで上から下にマークしたことを確認しましたwindows-compress-uncompress-zip-files)。その後、私は名前とファイルタイプを変更することができます何の.epub。
ただし、Windows 10にアップグレードした後、このトリックは機能しなくなりました。幸いなことに、私は別の方法を見つけました。最初に、zipファイルの先頭(mimetype)にあるファイルをcompress(zip)フォルダーに送信します。そのファイルのみであることを確認してください。私がzipしたい他のファイル(私の場合は2つのフォルダ)を取り、カーソルでそれらをマークし、作成したzipファイルまでドラッグします。その後、Windowsは新しいファイルをzipファイルに追加し、最初に圧縮したファイルを一番上に保持します。