2011-08-01 14 views
14

ZIP/RARファイルの圧縮方法を決定する、と私は、各ファイルが圧縮されたかのプロパティ(圧縮レベルを分析しようとしている方法、圧縮アルゴリズム(例えば、デフレート、LZMA、BZip2)、辞書のサイズ、単語のサイズなど)、私はまだこれを行う方法を考え出していない。私は私が働いているいくつかのzipやRARファイルを持っている

ソフトウェアで、あるいは、これらの特性を決定するためにファイルを分析する方法はありますか?

乾杯と感謝!

答えて

4

私は、これらのファイルを見てするhachoir-wxを示唆しています。 How to install a Python package、またはWindowsを使用しているときにPyPMでActivePythonを試すことができます。あなたがインストールされ、必要なhachoirパッケージを持っているときは、GUIを実行するには、このような何かを行うことができます。

のpython C:\ Python27 \スクリプト\ hach​​oir-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ファイルの場合

私はspecificationsZIP Wikipedia pageを見て持つことから始めます。これらはおそらく興味深いでしょう。

general purpose bit flag: (2 bytes) 
    compression method: (2 bytes) 
+0

素晴らしい、ありがとう! – Intenex

+0

最初のファイルのMETHODバイトは、通常、オフセット0x2Dにあります。 –

0

タイプは、単にファイルのヘッダ(PKRar)を見て、簡単です。

は、その他にも、私は情報が圧縮されたコンテンツで利用可能であることを疑います。

+0

はい、利用できます(少なくともrarでは)。しかし明らかにそれを得る方法は、特定のファイル形式に依存します。 – Artefacto

+3

情報が利用できなかった場合、データを解凍することはできません。 –

1

ZIPファイルの場合は、コマンドzipinfoがあります。 ZIPのために

+0

私はコンソールにそれを入力すると、そのようなコマンドが見つからなかったと言います。 –

6

- はい、RARのために

持つZipInfo、ヘッダが簡単に7zipをまたはWinRARのいずれかで発見されたが、これはかなり古い質問ですが、私は私の中で投げたかった添付文書

+0

あなたのヒントありがとう! .DOCXファイルを生成するときに、MS Wordが使用するZIP設定を調べる必要がありました。 DOCXファイルは、いくつかのXMLファイルと埋め込みメディアファイルを含むZIPアーカイブです。これらはあなたが選んだツールでバッチ処理できますが、最後にMS Wordが受け付ける設定でZIPファイルに再パックする必要があります。私はzipinfoを使ってMS Wordが書いたDOCXファイルを分析しました。私はDOCX ZIPフォーマットについての最終結論を出すべきです、私はここにそれを掲示します。 – porg

7

を読みますとにかく上記の方法のいくつかは私が使いやすいほど簡単ではなかったので、2セントでした。

また、これは7-Zipで判断することもできます。アーカイブを開いた後、圧縮する方法の列がある:

7zip properties

0

ビア7ジップ(又はp7zipの)コマンドライン:

7z l -slt archive.file 

圧縮方法を具体的に探している場合:

7z l -slt archive.file | grep -e '^---' -e '^Path =' -e '^Method =' 
+0

私はまた '' grep -E '^((---)|(Path =)|(Method =))' '](https://unix.stackexchange.com/a/37316/13308) 。 – palswim

関連する問題