Questão Pode compactar um arquivo quebrá-lo?


Eu só pedi a alguém para me enviar um zipado psd Arquivo.

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

Eu assumi que compactar um arquivo é perfeitamente reversível, por isso, é comumente usado. Eu acho que a outra pessoa está incorreta.

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


86


origem


Talvez a outra pessoa tenha confundido a compactação de um arquivo (sem perdas) com a compactação jpeg (com perdas), o que pode fazer com que o teste pareça feio. - Matt H
Eu sei que uma vez eu tive problemas de compatibilidade para arquivos zip, porque o formato do arquivo é usado em todas as plataformas ... - jokoon
Eu certamente experimentei certos casos 'patológicos' onde tanto o Winrar quanto as instalações embutidas do WinXP quebraram arquivos (dezenas de milhares em um único arquivo zip). Isso foi há 4-5 anos, e o só A solução que encontrei na época foi usar o 7-zip. Tanto quanto me lembro, até o 7-Zip não conseguiu descompactar arquivos criados pelas outras rotinas, sugerindo que a falha estava na compactação, não na descompactação. Obviamente, optei por usar o 7-zip para ambos os lados no sistema de produção de qualquer maneira. - FumbleFingers
@Jokoon: Não tenho certeza se é válido falar de um formato de arquivo ... usado em todas as plataformas. Existem alguns formatos internos diferentes usados ​​em arquivos zip, e é sempre possível que um arquivo possa ser criado por uma rotina de empacotamento usando um formato que é suportado de forma imperfeita por alguma outra rotina que você usa na hora de descompactar. - FumbleFingers
@Fumble; Mas ainda assim, qualquer arquivador decente deve pegar a mudança de hash e relatar a operação como uma falha - não deixar um arquivo quebrado por aí. - Phoshi


Respostas:


Não, compactar um arquivo não pode quebrá-lo. Fornecer seu arquivo zip não está corrompido, ele irá 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 está relacionado ao processo de compactação / descompactação.


134



Isso é o que eu suspeitava. Obrigado pela sua resposta. - alex
Além disso, alguns formatos zip suportam redundância, o que significa que o armazenamento pode ser mais segura do que armazenar o arquivo simples. - BlueRaja - Danny Pflughoeft
Você não deve dizer não rapidamente, há muitas implementações de arquivos compactados / descompactadores por aí, contando todos os sistemas operacionais existentes e outras coisas que podem fazer arquivos zip, eu não ficaria surpreso que algumas implementações simplesmente não se importam com outras. . - jokoon
@jokoon: então esses arquivos seriam corrompidos, o que ele exclui explicitamente - mbx
-1 Em teoria, isso é verdade, mas na prática há problemas com as fontes do Mac sendo descompactadas em um PC como 0 bytes. Isso ocorre porque um fork de recursos está sendo criado. Experimente por si mesmo e veja. - Django Reinhardt


Dentro geral uso, o zip é sem perdas (assumindo uma implementação livre de erros), mas existe 1 cenário que poderia se aplicar à perda de dados: NTFS Alternate Data Streams. Esse recurso pouco usado permite que um único Arquivo ter múltiplos independente conjuntos de conteúdos. A maioria dos códigos só vai ver o sem nome fluxo, mas outros podem existir.

Assim; se um programa decidiu armazenar os dados em um fluxo de dados alternativos NTFS, o seu cliente zip não vai ver essa parte (precisa explicitamente pedir, e RAR é o único que faz isso atualmente).

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


80



Uau, isso é um conhecimento totalmente novo para mim. - kizzx2
Novo para mim e bizarro. Quando um arquivo não é um arquivo? Quando seu conteúdo sofre mutação à vontade. Já ouvi falar de problemas de pior desempenho, mas não muitos. - msw
@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 (é muito raramente usado), mas ... - Marc Gravell♦
Volte para o SO! Muito técnico! (Brincadeira, é claro) - Byron Whitlock
E no outro extremo do espectro, temos pessoas reclamando sobre metadados específicos do sistema sendo forçosamente incluídos em arquivos. - Daniel Beck♦


Há circunstâncias em que uma fonte do Mac pode não ser idêntica se for compactada e descompactada. Isso não pode quebrá-lo, mas ao contrário de algumas instruçõ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 contenham forks de recursos e o usuário tiver uma versão mais antiga do Mac OS X, normalmente 10.4 ou anterior. Fontes herdadas como essa funcionam no OS X, embora tenham sido originalmente destinadas ao OS 9 e versões anteriores do sistema operacional Macintosh. É inteiramente provável (e, na minha opinião, comum) que algumas pessoas ainda estão usando uma biblioteca de fontes que construíram há 20 anos. Normalmente são artistas e diretores de arte. Por exemplo, tenho algumas fontes com datas de criação de 1993 e centenas com datas de criação de 1998, a maioria com forks de recursos. Certamente eu deveria ter convertido estes para formatos mais modernos ou parado de usá-los, mas vamos encarar: uma vez que você compra a Adobe Font Library, você nunca mais vai querer comprá-la novamente. Nos meus anos de trabalho com diretores de arte em publicidade, aprendi a respeitar a pasta de fontes como se fosse um diário de diretor de arte, um livro comum ou um superego.

  2. Alguns metadados serão removidos em certas versões do sistema operacional. Metadados podem ser itens adicionados ao campo de informações do arquivo. Isso não quebrará o arquivo, mas, novamente, o zip-unzip 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 tiver sido aplanado e a fonte não tiver sido convertida em estrutura de tópicos, o que significa que também será entregue os arquivos de fonte com o PSD para que a pessoa na extremidade de recebimento possa fazer suas próprias alterações no arquivo. Esta é uma prática comum.


33



+1 - Gostaria de poder dar pontos suficientes para empurrá-lo para o topo da pilha. O Mac OS tem as variantes de fonte Tipo 1 e TrueType nas quais os dados da fonte são armazenados na bifurcação de recursos. Embora as ferramentas nativas de compactação / descompactação no SO possam lidar com essa situação normalmente, nem todas as ferramentas (especialmente as ferramentas de linha de comando portadas para o OS X) funcionarão. O que é pior, não fechando as fontes e tentando enviá-las via e-mail ou FTP vai Quebre-os! - afrazier
Mas o problema aqui parece estar em como você os compacta, não se pode. Parece que precisa de um programa que compreenda os garfos de recursos e saiba como usá-los. Estou lendo isso certo? - uSlackr
@uSlackr, certo, mas o problema persiste no final do recebimento. Se o arquivo for movido para o Windows, você provavelmente obterá uma pilha de arquivos de fontes inúteis porque, embora o Windows (especificamente o NTFS) permita vários fluxos de dados em um arquivo, as fontes no Windows não funcionam dessa maneira. O arquivo PSD em si é provável que seja portátil entre Mac e Windows, no entanto. - RBerteig
+1 - por exemplo, salve suas fontes do Mac em uma unidade de rede e veja o tamanho delas em um PC com Windows ou Linux - 0 bytes! É o recurso bifurcado que confunde a idéia de "apenas funciona". - ʍǝɥʇɐɯ
Sim, é um fato bem conhecido na minha indústria que as fontes do Mac não funcionam bem. Muitas vezes, um usuário de PC irá descompactá-los em 0 bytes. - Django Reinhardt


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

Então, se foi alterado em algum motivo (arquivo quebrado, por exemplo) - ele nem seria descompactado.


14



irrelevante, já que o zip está usando compactação sem perdas (ou 'storage', a compactação pode ser desabilitada). checksumming é apenas para ser capaz de fornecer algum feedback se algo deu errado. - akira
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 CRC-32) que detecta uma gama muito maior de erros. - Bevan
O termo "checksum" tornou-se claramente mais amplo em significado do que sua definição original se as pessoas puderem [e chamam] os resultados de funções hash criptográficas "somas de verificação". - Random832


Só se eles estiverem fazendo algo bobo, como fazer uma conversão em modo texto, ou se houver um zip / descompactar em algum lugar que fique confuso com um zip embutido. (Tais erros ter ocorreu no passado - ou seja, talvez 10 anos atrás.)


9





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

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


4





A única verdade que eu poderia ver na declaração "zipping breaks fonts" é se o formato de arquivo PSD em si tem uma versão "compactada" ou opção que você pode habilitar em qualquer programa que crie esses arquivos e essa opção de alguma forma lida com fontes de maneira diferente.

Usando qualquer programa de zip deve estar bem, exceto se for buggy.

Em resposta a Marc, também há possíveis problemas no sistema de arquivos em sistemas de arquivos EXT se você tentar e compactar uma estrutura de diretórios contendo links flexíveis e físicos em um formato compactado que não os entende (e é por isso que sempre faço um .tar.gz de um .zip lá). Além disso, compactar links suaves com caminhos relativos e depois 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 (corrompendo o corrompimento de um PSD), então o software do compressor está com defeito, eles não estão incluindo todos os arquivos que precisam no PSD e / ou seus computadores estão infectados com um vírus.

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


0





Apenas para adicionar mais uma advertência para completar: A compactação pode fazer com que os metadados do arquivo, como permissões ou tempo acessado pela última vez, sejam perdidos.

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


0



Eu acho que há um mal-entendido para o conceito de um algoritmo de compactação sem perdas e programas que executam essa tarefa. Sem perda significa que o fluxo binário que é compactado será descompactado para o fluxo binário de saída idêntico. As informações meta são dependentes do sistema operacional e devem ser manipuladas pelo sistema operacional e / ou pelo aplicativo. - Bora
Obrigado, @Bora, mas não tenho esse mal-entendido. Eu percebo que o zip não afeta os dados reais no arquivo. Estou sugerindo uma causa "externa" que pode levar as pessoas a pensarem que o zip danificou seus arquivos e diretórios. Eu fui pego no passado restaurando backups zipados, apenas para descobrir que meus aplicativos não funcionavam mais, porque eles dependem de meta-dados que eu não consegui criar. (Não é um mal-entendido básico da minha parte, mas apenas um descuido.) - Oddthinking


Zip pode corromper os nomes dos arquivos. Zip, como tal, não usa unicode. A codificação de nomes de arquivos não é especificada e na localidade atual do Windows é usada.

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

Existe uma extensão para o formato Zip que os programas mais recentes (winzip desde a versão 11 eu acho) usam.

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


0