ZIP/RARファイルの圧縮方法を決定する、と私は、各ファイルが圧縮されたかのプロパティ(圧縮レベルを分析しようとしている方法、圧縮アルゴリズム(例えば、デフレート、LZMA、BZip2)、辞書のサイズ、単語のサイズなど)、私はまだこれを行う方法を考え出していない。私は私が働いているいくつかのzipやRARファイルを持っている
ソフトウェアで、あるいは、これらの特性を決定するためにファイルを分析する方法はありますか?
乾杯と感謝!
ZIP/RARファイルの圧縮方法を決定する、と私は、各ファイルが圧縮されたかのプロパティ(圧縮レベルを分析しようとしている方法、圧縮アルゴリズム(例えば、デフレート、LZMA、BZip2)、辞書のサイズ、単語のサイズなど)、私はまだこれを行う方法を考え出していない。私は私が働いているいくつかのzipやRARファイルを持っている
ソフトウェアで、あるいは、これらの特性を決定するためにファイルを分析する方法はありますか?
乾杯と感謝!
私は、これらのファイルを見てするhachoir-wxを示唆しています。 How to install a Python package、またはWindowsを使用しているときにPyPMでActivePythonを試すことができます。あなたがインストールされ、必要なhachoirパッケージを持っているときは、GUIを実行するには、このような何かを行うことができます。
のpython C:\ Python27 \スクリプト\ hachoir-WX
それはを閲覧することができますRARおよびZIPファイルのデータフィールド。例として、screenshotを参照してください。 RARファイルの場合
は、WinRARのインストールディレクトリにあるtechnote.txtファイルを見てみましょう。これにより、RAR仕様の詳細情報が得られます。おそらく、これらに興味があるでしょう:
HEAD_FLAGS Bit flags: 2 bytes
0x10 - information from previous files is used (solid flag)
bits 7 6 5 (for RAR 2.0 and later)
0 0 0 - dictionary size 64 KB
0 0 1 - dictionary size 128 KB
0 1 0 - dictionary size 256 KB
0 1 1 - dictionary size 512 KB
1 0 0 - dictionary size 1024 KB
1 0 1 - dictionary size 2048 KB
1 1 0 - dictionary size 4096 KB
1 1 1 - file is directory
辞書サイズがあまりにもWinRARのGUIで見つけることができます。
METHOD Packing method 1 byte
0x30 - storing
0x31 - fastest compression
0x32 - fast compression
0x33 - normal compression
0x34 - good compression
0x35 - best compression
そしてWikipediaもこのことを知っている:
RAR圧縮ユーティリティを閉じたアルゴリズムで、独自のものです。 RARはEugene Roshalの兄弟であるAlexander L. Roshalが所有しています。 RARのバージョン3はLempel-Ziv(LZSS)と部分一致(PPM)圧縮による予測、特にDmitry ShkarinによるPPMIIのPPMd実装に基づいています。 ZIPファイルの場合
私はspecificationsとZIP Wikipedia pageを見て持つことから始めます。これらはおそらく興味深いでしょう。
general purpose bit flag: (2 bytes)
compression method: (2 bytes)
タイプは、単にファイルのヘッダ(PK
とRar
)を見て、簡単です。
は、その他にも、私は情報が圧縮されたコンテンツで利用可能であることを疑います。
はい、利用できます(少なくともrarでは)。しかし明らかにそれを得る方法は、特定のファイル形式に依存します。 – Artefacto
情報が利用できなかった場合、データを解凍することはできません。 –
ZIPファイルの場合は、コマンドzipinfoがあります。 ZIPのために
私はコンソールにそれを入力すると、そのようなコマンドが見つからなかったと言います。 –
- はい、RARのために
持つZipInfo、ヘッダが簡単に7zipをまたはWinRARのいずれかで発見されたが、これはかなり古い質問ですが、私は私の中で投げたかった添付文書
あなたのヒントありがとう! .DOCXファイルを生成するときに、MS Wordが使用するZIP設定を調べる必要がありました。 DOCXファイルは、いくつかのXMLファイルと埋め込みメディアファイルを含むZIPアーカイブです。これらはあなたが選んだツールでバッチ処理できますが、最後にMS Wordが受け付ける設定でZIPファイルに再パックする必要があります。私はzipinfoを使ってMS Wordが書いたDOCXファイルを分析しました。私はDOCX ZIPフォーマットについての最終結論を出すべきです、私はここにそれを掲示します。 – porg
を読みますとにかく上記の方法のいくつかは私が使いやすいほど簡単ではなかったので、2セントでした。
また、これは7-Zipで判断することもできます。アーカイブを開いた後、圧縮する方法の列がある:
ビア7ジップ(又はp7zipの)コマンドライン:
7z l -slt archive.file
圧縮方法を具体的に探している場合:
7z l -slt archive.file | grep -e '^---' -e '^Path =' -e '^Method ='
私はまた '' grep -E '^((---)|(Path =)|(Method =))' '](https://unix.stackexchange.com/a/37316/13308) 。 – palswim
素晴らしい、ありがとう! – Intenex
最初のファイルのMETHODバイトは、通常、オフセット0x2Dにあります。 –