O zip de um arquivo pode quebrá-lo?


85

Eu apenas pedi a alguém para me enviar um psdarquivo compactado .

Eles recusaram, alegando que compactar um arquivo pode danificar as fontes .

Presumi que compactar um arquivo é perfeitamente reversível, daí o motivo pelo qual ele é comumente usado. Eu acho que a outra pessoa está incorreta.

Existe alguma verdade sobre fechar o conteúdo de seus arquivos?


51
Talvez a outra pessoa tenha confundido compactar um arquivo (sem perdas) com compactação jpeg (com perdas), o que pode tornar o teste feio.
Matt H

Eu sei que eu já teve problemas de compatibilidade para arquivos zip, porque o formato de arquivo é usado em todas as plataformas ...
jokoon

1
Certamente experimentei certos casos "patológicos" em que as instalações internas do Winrar e do WinXP quebraram arquivos (dezenas de milhares em um único arquivo zip). Isso aconteceu há 4-5 anos, e a única solução que eu encontrei na época foi usar o 7-zip. Pelo que me lembro, mesmo o 7-Zip não conseguiu descompactar com êxito os arquivos criados por outras rotinas, sugerindo que a falha estava no zíper, não no descompactação. Obviamente, optei por usar o 7-zip para ambos os lados no sistema de produção.
FumbleFingers

1
@jokoon: Não sei se é válido falar de um formato de arquivo ... usado em todas as plataformas . Existem muitos formatos internos diferentes usados ​​em arquivos zip, e sempre é possível que um arquivo morto possa ser criado por uma rotina de empacotamento usando um formato que é imperfeitamente suportado por outra rotina que você usa no momento da descompactação.
FumbleFingers

@Fumble; Ainda assim, qualquer arquivador decente deve pegar a alteração de hash e relatar a operação como uma falha - não deixar um arquivo quebrado por aí.
Phoshi 14/05

Respostas:


133

Não, compactar um arquivo não pode quebrá-lo. Se o seu arquivo zip não estiver corrompido, ele reproduzirá o arquivo idêntico quando descompactado.

Nesse caso, a diferença entre as fontes instaladas nos dois sistemas diferentes pode causar problemas, mas isso não tem nenhuma relação com o processo de zip / descompactar.


4
Era disso que eu suspeitava. Obrigado pela sua resposta.
alex

34
Além disso, alguns formatos zip suportam redundância, o que significa que o armazenamento como um zip pode ser mais seguro do que o arquivo simples.
BlueRaja - Danny Pflughoeft

Você não deve dizer não assim rapidamente, existem muitas implementações de arquivos compactando / descompactando por aí, contando todos os sistemas operacionais existentes e outras coisas que podem criar arquivos zip, não me surpreenderia que algumas implementações simplesmente não se importem com outras. .
Jokoon

@jokoon: em seguida, os arquivos seriam corrompidos, que exclui explicitamente
mbx

3
-1 Na ​​teoria, isso é verdade, mas na prática há problemas com as fontes do Mac sendo descompactadas no PC como 0 bytes. Isso ocorre devido à criação de uma bifurcação de recursos. Tente você mesmo e veja.
Django Reinhardt

80

Em uso geral , o zip é sem perdas (supondo uma implementação sem erros), mas há um cenário que pode ser aplicado à perda de dados: Fluxos de Dados Alternativos NTFS. Esse recurso pouco usado permite que um único arquivo tenha vários conjuntos independentes de conteúdo. A maioria dos códigos só verá o fluxo sem nome , mas outros podem existir.

Assim; se um programa decidir armazenar os dados em um fluxo de dados alternativo do NTFS, seu cliente zip não verá essa parte (ele precisará solicitá-lo explicitamente e o RAR é o único que faz isso atualmente ).

Mas para enfatizar: isso é usado muito raramente, e não normalmente com coisas como PSD. Suspeito que seu amigo / associado esteja simplesmente errado.


11
Uau, isso é um conhecimento totalmente novo para mim.
kizzx2

5
Novo para mim e bizarro. Quando um arquivo não é um arquivo? Quando seu conteúdo muda à vontade. Já ouvi falar de piores características, mas não muitas.
msw

7
@ msw - eles não sofrem mutação à vontade; simplesmente - pode haver mais de um pedaço de dados associado a um único registro de arquivo. Quase sempre há exatamente um (isso é muito raramente utilizado), mas ...
Marc Gravell

4
Volte para SO! Muito técnico! (brincadeirinha, claro;)
Byron Whitlock


32

Há circunstâncias em que uma fonte Mac pode não ser idêntica se for compactada e descompactada. Isso pode não quebrá-lo, mas, ao contrário de algumas declarações acima, o processo pode não fornecer um arquivo idêntico.

As circunstâncias são discutidas aqui:

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

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

Mas em suma:

  1. Se forem fontes muito mais antigas que contêm bifurcações de recursos e o usuário tiver uma versão mais antiga do Mac OS X, normalmente 10.4 ou anterior. Fontes herdadas como esta funcionam no OS X, embora originalmente tenham sido projetadas para o OS 9 e versões anteriores do sistema operacional Macintosh. É inteiramente provável (e, na minha experiência, comum) que algumas pessoas ainda estejam usando uma biblioteca de fontes que construíram há 20 anos. Normalmente, esses são artistas e diretores de arte. Por exemplo, eu tenho algumas fontes com datas de criação de 1993 e centenas com datas de criação de 1998, a maioria com garfos de recursos. Certamente eu deveria ter convertido esses formatos para formatos mais modernos ou parado de usá-los, mas convenhamos: depois de comprar a Adobe Font Library, você nunca mais precisará comprá-lo. Nos meus anos trabalhando com diretores de arte em publicidade,

  2. Alguns metadados serão removidos em determinadas versões do sistema operacional. Os metadados podem ser itens adicionados ao campo de informações do arquivo. Isso não interromperá o arquivo, mas, novamente, nem o descompactação de ida e volta produzirá um arquivo idêntico.

PS: Estou assumindo aqui que, se alguém estiver compactando um arquivo PSD para entrega a outra pessoa, ele não foi achatado e a fonte não foi convertida em estrutura de tópicos, o que significa que também seria entregue os arquivos de fonte com o PSD para que a pessoa do lado de recebimento possa fazer suas próprias alterações no arquivo. Esta é uma prática comum.


2
+1 - Eu gostaria de poder dar pontos suficientes para empurrá-lo para o topo da pilha. O Mac OS possui as variantes de fonte Tipo 1 e TrueType, onde os dados da fonte são armazenados na bifurcação de recursos. Enquanto as ferramentas nativas de zip / descompactar no sistema operacional podem lidar com essa situação normalmente, nem todas as ferramentas (principalmente as ferramentas de linhas de comando portadas para o OS X). O que é pior, não fechando as fontes e tentar enviá-los via e-mail ou FTP irá quebrá-las!
111111 afrazier

1
Mas o problema aqui parece estar em como você os comprime, e não em se você pode. Parece precisar de um programa que entenda os garfos de recursos e você precisa saber como usá-lo. Estou lendo isso certo?
USlackr

@uSlackr, certo, mas o problema persiste no final do recebimento. Se o arquivamento for movido para o Windows, você provavelmente obterá uma pilha de arquivos de fonte inúteis porque, embora o Windows (especificamente NTFS) permita vários fluxos de dados em um arquivo, as fontes no Windows não funcionam dessa maneira. O arquivo PSD em si provavelmente será portátil entre Mac e Windows, no entanto.
RBerteig 14/05

+1 - como exemplo, salve as fontes do Mac em uma unidade de rede e veja o tamanho delas em um PC com Windows ou Linux - 0 bytes! É a bifurcação de recursos que confunde a idéia de 'simplesmente funciona'.
#

Sim, é um fato bem conhecido no meu setor que as fontes Mac não são compactadas. Muitas vezes, um usuário de PC descompacta 0 bytes.
Django Reinhardt

14

O ZIP usa soma de verificação para verificar se o arquivo descompactado é exatamente o mesmo que era antes da compactação.

Portanto, se fosse alterado por algum motivo (arquivo quebrado, por exemplo) - nem seria descompactado.


irrelevante, pois o zip está usando a compactação sem perdas (ou 'armazenamento', a compactação pode ser desativada). a soma de verificação é apenas para poder fornecer algum feedback se algo der errado.
Akira

13
Perdoe o pedantismo, mas o ZIP não usa uma soma de verificação - ele usa uma verificação de redundância cíclica de 32 bits (também conhecida como CRC-32 ), que detecta uma gama muito maior de erros.
Bevan

5
O termo "soma de verificação" tornou-se claramente mais amplo em significado do que sua definição original se as pessoas puderem [e chamam] de chamar os resultados das funções hash criptográficas de "soma de verificação".
Random832

9

Somente se eles estiverem fazendo algo bobo, como fazer a conversão em modo de texto, ou se houver um zip / descompactar em algum lugar que seja confundido por um zip incorporado. (Esses erros têm ocorrido no passado -. Significando talvez 10 anos atrás)


4

O Zip usa um algoritmo de compactação sem perda para garantir que os dados retornados sejam idênticos aos dados inseridos.

(BTW, outras tecnologias como jpg, mpeg, mp3, usam técnicas com perdas para se comprimir com a teoria de que nossos olhos e ouvidos não são tão sensíveis)


0

A única verdade que pude ver na declaração "zipando fontes de quebra" é se o próprio formato de arquivo PSD possui uma versão ou opção "compactada" que você pode ativar em qualquer programa que cria esses arquivos e essa opção de alguma forma manipula as fontes de maneira diferente.

O uso de qualquer programa zip deve ser bom, exceto se for de buggy.

Em resposta a Marc, também existem problemas de sistema de arquivos em potencial nos sistemas de arquivos EXT se você tentar compactar uma estrutura de diretório contendo links flexíveis e físicos em um formato compactado que não os entenda (é por isso que eu sempre faço um .tar.gz de um. zip aqui). Além disso, compactar links flexíveis com caminhos relativos e descompactá-los em outro lugar não funcionará, é claro, mas isso não é culpa do programa zip.


0

Se eles já tiveram esse problema antes (compactar a corrupção de um PSD), ou o software do compressor está com defeito, eles não estão incluindo todos os arquivos necessários no PSD e / ou os computadores estão infectados por um vírus.

Gostaria de perguntar se eles tiveram corrupções semelhantes movendo arquivos para discos USB, apenas para descartar a última opção.


0

Apenas para adicionar mais uma ressalva quanto à integridade: O zíper pode causar a perda de metadados do arquivo, como permissões ou tempo do último acesso.

Não acredito que seja geralmente relevante para arquivos e fontes PSD.


Eu acho que há um mal-entendido no conceito de algoritmo de compactação sem perdas e programas que executam essa tarefa. Sem perdas significa que o fluxo binário compactado será descompactado para o fluxo binário de saída idêntico. As meta-informações dependem do sistema operacional e devem ser tratadas pelo sistema operacional e / ou pelo aplicativo.
Bora

1
Obrigado, @Bora, mas não tenho esse mal-entendido. Sei que compactar não afeta os dados reais no arquivo. Estou sugerindo uma causa "externa" que pode levar as pessoas a pensar que o zip danificou seus arquivos e diretórios. Eu fui pego no passado restaurando backups compactados, apenas para descobrir que meus aplicativos não funcionavam mais, porque eles dependem de metadados que eu não trouxe. (Não é um mal-entendido básico da minha parte, mas apenas um descuido.)
Oddthinking

0

Zip pode corromper nomes de arquivos. Zip, como tal, não usa unicode. A codificação de nomes de arquivos não é especificada e no local atual do Windows é usado.

Portanto, quando transferidos para um sistema diferente, seus nomes de arquivos serão confusos.

Há uma extensão para o formato Zip usada pelos programas mais recentes (winzip desde a versão 11).

Eu prefiro 7z desde que eu tinha um zip cheio de nomes japoneses incapazes de descompactá-lo.


0

Um arquivo zip deve ser capaz de reproduzir exatamente o conteúdo.

Porém, uma observação relacionada - é mais difícil recuperar os dados se um arquivo zip ficar corrompido , do que se os dados estivessem no formato original. Por quê? Muitos formatos de arquivo têm redundância integrada e são projetados para que erros menores sejam corrigíveis ou erros menores não sejam críticos.

Imagine um arquivo de vídeo. Na maioria dos formatos, se uma pequena parte for corrompida, você verá um piscar temporário nessa pequena parte do vídeo, mas ainda poderá assisti-lo. Mas se o arquivo de vídeo estiver compactado, a capacidade de correção de erros será reduzida e, dependendo da extensão da corrupção, talvez você não consiga descompactar o arquivo / assistir ao vídeo. (Este é um exemplo artificial, pois é inútil compactar a maioria dos formatos de vídeo).

Isso é válido para qualquer formato de compactação - a compactação por definição reduz a reduncância e, portanto, os recursos de correção de erros e é uma troca.


Como comentado acima, alguns formatos de arquivo zip suportam redundância. Isso pode torná-lo ainda mais seguro que o formato original.
dman
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.