web-dev-qa-db-ja.com

Zipアーカイブ内のファイルの順序を制御するにはどうすればよいですか?

Zipアーカイブ内のファイルを特定の順序にする必要がある場合があります(たとえば、現在 EPUBs を作成しているため、Zipの最初のエントリがmimetypeである必要があります)ファイル)。 Windowsでこれを行うにはどうすればよいですか?

現在、アーカイバとして 7-Zip を使用していますが、ファイルの順序を制御するオプションが表示されません。これは7-zipで実行できますか?そうでない場合、どのようなオプションがありますか?

14
Ben Blank

7-Zip GUIバージョン:

  1. ePUBファイルからmimetypeを抽出します
  2. ePUBファイルのmimetypeを削除
  3. mimetypeの名前を!mimetypeに変更
  4. ePUBファイルに!mimetypeを追加
  5. ePUBファイル内の!mimetypemimetypeに名前変更

7-Zip単純なドラッグアンドドロップバージョン:

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.exerepair.batを同じディレクトリに置き、EPUBファイルをrepair.batにドラッグするだけです。

5
Tithen-Firion

1つの方法は次のとおりです。ほとんどのアーカイバとアーカイブツールには、元のアーカイブにファイルアイテムを追加または追加する機能があります。上部に必要なアイテムを含むアーカイブを作成し、作成したアーカイブにファイルアイテムを追加します。これは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

Mimetypeファイルの内容には、先頭にパディングや空白を含めたり、Unicode署名(またはバイトオーダーマーク)で始めたり、MIMEタイプ文字列の大文字と小文字を上記のとおりにする必要があります。さらに、mimetypeファイルは圧縮も暗号化もしてはならず、Zipヘッダーに余分なフィールドがあってはなりません。

3
Psycogeek

EPUBを作成するには、2段階のプロセスが必要です。最初に、圧縮なし(!)でMIMEタイプを追加し、次に他のファイル/フォルダーを追加します。したがって、7zを使用すると、次のコマンドを実行できます。

7z a -mx=0 dummy.Zip mimetype

ワイルドカード*を使用できるようにするには、ファイルmimetypeを別のフォルダーに移動して、2番目のステップを開始する必要があります。

7z a -r dummy.Zip *

その後、Zipの名前をEPUBに変更すれば完了です。

2
Peter

私の経験では、最も単純な答え(Windowsの場合、7、64ビット)は、Windowsの組み込みZip機能を使用することです。 [送信]を使用してMIMEタイプを新しいZipフォルダーに送信し、7Zipを使用してMETA-INFとOEBPSを新しいZipに追加します。 mimetypeファイルを最初にシーケンシングするという点では、常に機能するようです。 7-Zipだけではこの操作を実行できませんでした。 (これはePUBSの場合ですが、シーケンス処理の場合、他の領域でも機能するはずです。)

これが他の誰かの役に立つことを願っています。

1

EPUBファイルを操作するときにも同じ問題が発生しました。

Windows 7では、この奇妙なトリックで修正しました。これで、Zipに作成するすべてのファイルを、mimetypeファイルが一番上になるようにソートしました(通常はサイズでソートします)。次に、すべてのファイルを上から下にカーソルでマークしてから、圧縮(Zip)フォルダーに送信するようにしました(次のようにします https://support.Microsoft.com/en-us/ help/14200/windows-compress-uncompress-Zip-files )。その後、名前とファイルタイプをwhatever。epubに変更できます。

しかし、Windows 10にアップグレードした後、このトリックは機能しなくなりました。幸い私は別の方法を見つけました。最初に、Zipファイルの先頭(mimetype)で必要なファイルを圧縮(Zip)フォルダーに送信します。そのファイルのみであることを確認してください。 Zipしたい他のファイル(私の場合は2つのフォルダー)をカーソルでマークして、作成したZipファイルまでドラッグします。その後、Windowsは新しいファイルをZipファイルに追加し、最初に圧縮したファイルを上に保持します。

0
MatsKS

Winrarを使用することが私にとってはうまくいきました。 MIMEタイプをZipアーカイブ(非圧縮!)に追加し、後で残りのフォルダーを通常の圧縮で追加しました。

このソリューションは7-Zipでは機能しませんでした。ファイルの順序を変更し続けるからです。

0
kat