varios tipos tamaño son rar5 rar4 que métodos mejor maximo mas lossy formatos formato entre empaquetar digitales diferencia diccionario desde descompresión datos con comprimir comprime compresor compresión compresion como comandos comando archivos archivo algorithm compression zip rar

algorithm - tipos - Cómo determinar el método de compresión de un archivo ZIP/RAR



tamaño del diccionario winrar que es (6)

A través de la línea de comando 7-Zip (o p7zip):

7z l -slt archive.file

Si busca específicamente el método de compresión:

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

Tengo algunos archivos zip y rar con los que estoy trabajando, y estoy tratando de analizar las propiedades de cómo se comprimió cada archivo (nivel de compresión, algoritmo de compresión (por ejemplo, deflate, LZMA, BZip2), tamaño del diccionario, tamaño de palabra , etc.), y todavía no he descubierto una manera de hacer esto.

¿Hay alguna forma de analizar los archivos para determinar estas propiedades, con software o de otra manera?

Saludos y gracias!


El tipo es fácil, solo mire los encabezados de archivo ( PK y Rar ).

En cuanto al resto, dudo que la información esté disponible en el contenido comprimido.


Esta es una pregunta bastante antigua, pero de todos modos quería lanzar mis dos centavos ya que algunos de los métodos anteriores no eran tan fáciles de usar.

También puede determinar esto con 7-Zip. Después de abrir el archivo hay una columna para el método de compresión:


Para ZIP - sí, zipinfo

Para RAR, los encabezados se encuentran fácilmente con 7Zip o WinRAR, lea la documentación adjunta


Para los archivos ZIP, hay un comando zipinfo.


Sugiero hachoir-wx para echar un vistazo a estos archivos. Cómo instalar un paquete de Python o puede probar ActivePython con PyPM cuando usa Windows. Cuando tenga instalados los paquetes necesarios de hachoir, puede hacer algo como esto para ejecutar la GUI:

python C: / Python27 / Scripts / hachoir-wx

Le permite navegar a través de los campos de datos de archivos RAR y ZIP. Vea esta screenshot de screenshot para un ejemplo.

Para los archivos RAR, eche un vistazo al archivo technote.txt que se encuentra en el directorio de instalación de WinRAR. Esto da información detallada de la especificación RAR. Probablemente te interesen estos:

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

El tamaño del diccionario también se puede encontrar en la GUI de WinRAR.

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

Y Wikipedia también lo sabe:

La utilidad de compresión RAR es propietaria, con un algoritmo cerrado. RAR es propiedad de Alexander L. Roshal, el hermano mayor de Eugene Roshal. La versión 3 de RAR se basa en Lempel-Ziv (LZSS) y la compresión de predicción por coincidencia parcial (PPM), específicamente la implementación PPMd de PPMII por Dmitry Shkarin.

Para los archivos ZIP, comenzaría por echar un vistazo a las specifications y la página de Wikipedia de ZIP . Estos son probablemente interesantes:

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