web-dev-qa-db-ja.com

Zip / RARファイルの圧縮方法を決定する方法

使用しているZipファイルとrarファイルがいくつかあり、各ファイルの圧縮方法のプロパティ(圧縮レベル、圧縮アルゴリズム(deflate、LZMA、BZip2など)、辞書サイズ、ワードサイズ)を分析しようとしています。など)、これを行う方法はまだわかりません。

ソフトウェアまたはその他の方法で、ファイルを分析してこれらのプロパティを決定する方法はありますか?

乾杯とありがとう!

18
Intenex

hachoir-wx これらのファイルを確認することをお勧めします。 Python package をインストールする方法、またはWindowsを使用しているときにPyPMで ActivePython を試すことができます。必要なhachoirパッケージがインストールされている場合は、 GUIを実行するために次のようなことを行うことができます:

python C:\ Python27\Scripts\hach​​oir-wx

これにより、RARおよびZipファイルのデータフィールドを参照できます。例については、これを参照してください スクリーンショット

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

辞書のサイズはWinRARGUIでも確認できます。

 METHOD          Packing method 1 byte
                 0x30 - storing
                 0x31 - fastest compression
                 0x32 - fast compression
                 0x33 - normal compression
                 0x34 - good compression
                 0x35 - best compression

そして ウィキペディア もこれを知っています:

RAR圧縮ユーティリティは独自のものであり、閉じたアルゴリズムを備えています。 RARは、ユージン・ローシャルの兄であるアレクサンダーL.ローシャルが所有しています。 RARのバージョン3は、Lempel-Ziv(LZSS)と部分一致(PPM)圧縮による予測、特にDmitryShkarinによるPPMIIのPPMd実装に基づいています。

Zipファイルの場合、まず 仕様Zip Wikipediaページ を確認します。これらはおそらく興味深いものです:

  general purpose bit flag: (2 bytes)
  compression method: (2 bytes)
4
Gfy

これはかなり古い質問ですが、上記の方法のいくつかは私が使用するのが簡単ではなかったので、とにかく私の2セントを投入したかったのです。

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

7Zip properties

10
atatko

Zipの場合-はい、zipinfo

RARの場合、ヘッダーは7ZipまたはWinRARのいずれかで簡単に見つけることができます。添付の​​ドキュメントをお読みください

6
user912372

7-Zip(またはp7Zip)コマンドライン経由:

7z l -slt archive.file

特に圧縮方法を探している場合:

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

Zipファイルの場合、コマンドzipinfoがあります。

1
Michał Šrajer

タイプは簡単です。ファイルヘッダー(PKRar)を見るだけです。

残りの部分については、圧縮されたコンテンツで情報が利用できるとは思えません。

0
leppie