¿Puede descomprimir un archivo romperlo?

85

Acabo de pedirle a alguien que me envíe un psdarchivo comprimido .

Se negaron, citando que comprimir un archivo puede romper las fuentes .

Supuse que comprimir un archivo es perfectamente reversible, por lo tanto, por qué se usa comúnmente. Creo que la otra persona es incorrecta.

¿Hay alguna verdad sobre comprimir rompiendo el contenido de sus archivos?

alex
fuente
51
Tal vez la otra persona ha confundido la compresión de un archivo (sin pérdida) con la compresión jpeg (con pérdida) que puede hacer que la prueba se vea fea.
Matt H
Sé que una vez que tenía problemas de compatibilidad para archivos zip, ya que el formato de archivo se utiliza en todas las plataformas ...
jokoon
1
Ciertamente, he experimentado ciertos casos 'patológicos' en los que las instalaciones integradas de Winrar y WinXP rompieron archivos (decenas de miles en un solo archivo zip). Esto fue hace 4 o 5 años, y la única solución que pude encontrar en ese momento fue usar 7-zip. Lo mejor que puedo recordar es que incluso 7-Zip no pudo descomprimir con éxito los archivos creados por otras rutinas, lo que sugiere que la falla estuvo en la compresión, no en la descompresión. Obviamente, opté por usar 7-zip para ambos lados en el sistema de producción de todos modos.
FumbleFingers
1
@jokoon: No estoy seguro de que sea válido hablar de un formato de archivo ... utilizado en todas las plataformas . Hay bastantes formatos internos diferentes que se usan en los archivos zip, y siempre es posible que una rutina de empaquetado pueda crear un archivo usando un formato que es imperfectamente compatible con alguna otra rutina que se utiliza al momento del desempaquetado.
FumbleFingers
@Buscar a tientas; Pero aún así, cualquier archivero decente debería detectar el cambio de hash e informar la operación como un error, no dejar un archivo roto por ahí.
Phoshi

Respuestas:

133

No, comprimir un archivo no puede romperlo. Siempre que su archivo zip no esté dañado, reproducirá el archivo idéntico cuando lo descomprima.

En este caso, la diferencia entre las fuentes instaladas en los dos sistemas diferentes puede causar problemas, pero eso no tiene ninguna relación con el proceso de descompresión / descompresión.

Mike Fitzpatrick
fuente
44
Eso es lo que sospechaba. Gracias por tu respuesta.
alex
34
Además, algunos formatos zip admiten redundancia, lo que significa que almacenarlos como zip puede ser más seguro que almacenar el archivo plano.
BlueRaja - Danny Pflughoeft
No debe decir no rápidamente, hay muchas implementaciones de archivos de descompresión / descompresión, contando todos los sistemas operativos existentes y otras cosas que pueden hacer archivos zip, no me sorprendería que algunas implementaciones simplemente no se preocupen por otras. .
jokoon
@jokoon: entonces esos archivos estarían dañados, lo cual él excluye explícitamente
mbx
3
-1 En teoría, esto es cierto, pero en la práctica hay problemas con las fuentes Mac que se descomprimen en una PC como 0 bytes. Esto se debe a la creación de una bifurcación de recursos. Pruébelo usted mismo y vea.
Django Reinhardt
80

En uso general , zip no tiene pérdidas (suponiendo una implementación libre de errores), pero hay un escenario que podría aplicarse a la pérdida de datos: NTFS Alternate Data Streams. Esta característica poco utilizada permite que un solo archivo tenga múltiples conjuntos de contenidos independientes . La mayoría del código solo verá la secuencia sin nombre , pero pueden existir otros.

Entonces; Si un programa decidió almacenar los datos en un flujo de datos alternativo NTFS, su cliente zip no verá esa parte (necesita solicitarla explícitamente, y RAR es el único que hace esto actualmente ).

Pero para enfatizar: esto se usa muy raramente, y no normalmente con cosas como PSD. Sospecho que tu amigo / asociado está simplemente equivocado.

Marc Gravell
fuente
11
Wow, este es un conocimiento totalmente nuevo para mí.
kizzx2
55
Nuevo para mí y extraño. ¿Cuándo es un archivo no un archivo? Cuando sus contenidos mutan a voluntad. He oído hablar de peores errores, pero no muchos.
msw
77
@msw: no mutan a voluntad; simplemente: puede haber más de un fragmento de datos asociado con un solo registro de archivo. Casi siempre hay exactamente uno (rara vez se usa), pero ...
Marc Gravell
44
¡Vuelve a SO! Demasiado técnico! (es broma, por supuesto;)
Byron Whitlock
32

Hay circunstancias en las que una fuente Mac puede no ser idéntica si se comprime y luego se descomprime. Es posible que esto no lo rompa, pero a diferencia de algunas de las declaraciones anteriores, el proceso puede no proporcionar un archivo idéntico.

Las circunstancias se discuten aquí:

http://xahlee.org/UnixResource_dir/macosx.html

http://ask.metafilter.com/59789/How-to-email-my-font

Pero en resumen:

  1. Si son fuentes mucho más antiguas que contienen bifurcaciones de recursos y el usuario tiene una versión anterior de Mac OS X, generalmente 10.4 o anterior. Las fuentes heredadas como esta funcionan en OS X, aunque originalmente estaban destinadas a OS 9 y versiones anteriores del sistema operativo Macintosh. Es muy probable (y, en mi experiencia, común) que algunas personas sigan utilizando una biblioteca de fuentes que construyeron hace ya 20 años. Por lo general, estos son artistas y directores de arte. Por ejemplo, tengo algunas fuentes con fechas de creación de 1993 y cientos con fechas de creación de 1998, la mayoría con tenedores de recursos. Ciertamente, debería haberlos convertido a formatos más modernos o haber dejado de usarlos, pero seamos sinceros: una vez que compre Adobe Font Library, nunca querrá volver a comprarlo. En mis años trabajando con directores de arte en publicidad,

  2. Algunos metadatos se eliminarán en ciertas versiones del sistema operativo. Los metadatos pueden ser elementos agregados al campo de información del archivo. Esto no romperá el archivo, pero nuevamente, ni el zip-unzip de ida y vuelta producirá un archivo idéntico.

PD: Supongo aquí que si uno está comprimiendo un archivo PSD para entregarlo a otra persona, que no se ha aplanado y que la fuente no se ha convertido en contorno, lo que significa que también se entregarían los archivos de fuente con el PSD para que la persona que recibe pueda hacer sus propios cambios en el archivo. Esta es una práctica común.

Grant Barrett
fuente
2
+1 - Desearía poder darle suficientes puntos para llevarlo a la cima de la pila. Mac OS tiene variantes de fuente Type 1 y TrueType donde los datos de la fuente se almacenan en la bifurcación de recursos. Si bien las herramientas nativas de descompresión / descompresión en el sistema operativo pueden manejar esta situación con gracia, no todas las herramientas (particularmente las herramientas de líneas de comando portadas a OS X) lo harán. Lo que es peor, no comprimir las fuentes y tratando de enviarlos por correo electrónico o FTP se romperlos!
Afrazier
1
Pero el problema aquí parece ser con cómo los comprime, no si puede hacerlo. Parece que necesita un programa que entienda los tenedores de recursos y usted debe saber cómo usarlo. ¿Estoy leyendo eso bien?
uSlackr
@uSlackr, correcto, pero el problema persiste en el extremo receptor. Si el archivo se mueve a Windows, es probable que obtenga una pila de archivos de fuentes inútiles porque aunque Windows (específicamente NTFS) permite múltiples flujos de datos en un archivo, las fuentes en Windows no funcionan de esa manera. Sin embargo, es probable que el archivo PSD sea portátil entre Mac y Windows.
RBerteig
+1: como ejemplo, guarde sus fuentes Mac en una unidad de red y luego vea qué tan grandes son desde una PC con Windows o Linux: ¡0 bytes! Es la bifurcación de recursos que confunde la idea de 'simplemente funciona'.
ʍǝɥʇɐɯ
Sí, es un hecho bien conocido en mi industria que las fuentes Mac no funcionan bien. A menudo, un usuario de PC descomprime 0 bytes.
Django Reinhardt
14

ZIP usa la suma de verificación para verificar si el archivo desempaquetado es exactamente el mismo que antes del empaque.

Entonces, si se cambió por alguna razón (archivo roto, por ejemplo), ni siquiera se descomprimiría.

zerkms
fuente
irrelevante ya que zip usa compresión sin pérdidas (o 'almacenamiento', la compresión podría deshabilitarse). la suma de comprobación es solo para ser capaz de proporcionar algunos comentarios si algo salió mal.
akira
13
Perdone la pedantería, pero ZIP no usa una suma de verificación: usa una verificación de redundancia cíclica de 32 bits (también conocida como CRC-32 ) que detecta una gama mucho más amplia de errores.
Bevan
55
El término "suma de verificación" se ha vuelto claramente más amplio en significado que su definición original si las personas pueden [y lo hacen] llamar a los resultados de las funciones hash criptográficas "sumas de verificación".
Random832
9

Solo si están haciendo algo tonto como hacer una conversión de modo de texto en él, o si hay un zip / descomprimir roto en algún lugar que se confunde con un zip incrustado. (Tales errores han ocurrido en el pasado, es decir, tal vez hace 10 años).

geekosaur
fuente
4

Zip utiliza un algoritmo de compresión sin pérdidas para garantizar que los datos que recuperes sean idénticos a los que ingresaste.

(Por cierto, otras tecnologías como jpg, mpeg, mp3, utilizan técnicas con pérdida para comprimir con la teoría de que nuestros ojos y oídos no son tan sensibles)

uSlackr
fuente
0

La única verdad que pude ver en la declaración "comprimir fuentes rompe" es si el formato de archivo PSD tiene una versión u opción "comprimida" que puede habilitar en cualquier programa que cree estos archivos y esta opción de alguna manera maneja las fuentes de manera diferente.

Usar cualquier programa zip debería estar bien, excepto si tiene errores.

En respuesta a Marc, también hay problemas potenciales del sistema de archivos en los sistemas de archivos EXT si intenta comprimir una estructura de directorio que contiene enlaces blandos y duros en un formato comprimido que no los comprende (por eso siempre hago un .tar.gz de un .zip allí). Además, comprimir enlaces blandos con rutas relativas y luego descomprimirlos en otro lugar no funcionará, por supuesto, pero eso no es culpa del programa zip.

user81051
fuente
0

Si han tenido ese problema antes (descomprimir corrompiendo una PSD), entonces su software del compresor está defectuoso, no están incluyendo todos los archivos que necesitan en la PSD y / o sus computadoras están infectadas con un virus.

Les preguntaría si han tenido corrupciones similares al mover archivos a discos usb, solo para descartar esa última opción.

egarcia
fuente
0

Solo para agregar una advertencia más para completar: la compresión puede causar que se pierdan los metadatos del archivo, como los permisos o el último tiempo de acceso.

No creo que sea generalmente relevante para los archivos y fuentes PSD.

Pensamiento extraño
fuente
Creo que hay un malentendido en el concepto de un algoritmo de compresión sin pérdida y programas que realizan esta tarea. Sin pérdida significa que la secuencia binaria que se comprime se descomprimirá en la secuencia binaria de salida idéntica. Las metainformaciones dependen del sistema operativo y deben ser manejadas por el sistema operativo y / o la aplicación.
Bora
1
Gracias, @Bora, pero no tengo ese malentendido. Me doy cuenta de que la compresión no afecta los datos reales en el archivo. Estoy sugiriendo una causa "externa" que puede engañar a la gente a pensar que el zip dañó sus archivos y directorios. He quedado atrapado en el pasado restaurando copias de seguridad comprimidas, solo para descubrir que mis aplicaciones ya no funcionaban, porque dependen de metadatos que no transmití. (No es un malentendido básico de mi parte, sino simplemente un descuido)
Pensamiento extraño
0

Zip puede dañar los nombres de archivo. Zip como tal no usa unicode. La codificación de los nombres de archivo no está especificada y en Windows se utiliza la configuración regional actual.

Por lo tanto, cuando se transfiere a un sistema diferente, sus nombres de archivo se desordenarán.

Hay una extensión del formato Zip que utilizan los programas más recientes (creo que winzip desde la versión 11).

Prefiero 7z ya que tenía un zip lleno de nombres japoneses que no podía descomprimirlo.

Kugel
fuente
0

Se supone que un archivo zip puede reproducir exactamente el contenido.

Sin embargo, una nota relacionada: es más difícil recuperar los datos si un archivo zip se corrompe , que si los datos estuvieran en el formato original. ¿Por qué? Muchos formatos de archivo tienen redundancia incorporada y están diseñados para que los errores menores sean corregibles o los errores menores no sean críticos.

Imagina un archivo de video. En la mayoría de los formatos, si una pequeña porción se corrompe, verá un parpadeo temporal en esa pequeña porción del video, pero aún puede ver el video. Pero si el archivo de video está comprimido, la capacidad de corrección de errores se reduce, y dependiendo de la extensión de la corrupción, simplemente no podrá descomprimir el archivo / ver el video. (Este es un ejemplo artificial, ya que es inútil comprimir la mayoría de los formatos de video en cualquier caso).

Esto es cierto para cualquier formato de compresión: la compresión por definición reduce la redundancia y, por lo tanto, las capacidades de corrección de errores y es una compensación.

tanon
fuente
Como dijo un comentario anterior, algunos formatos de archivo zip admiten redundancia. Esto puede hacerlo aún más seguro que el formato original.
DMan