Se eu tiver um arquivo zip grande e adicionar um arquivo a ele, o Windows criará uma cópia do arquivo e excluirá o original, causando uma "amplificação de gravação" muito grande, ou apenas adicionará ao arquivo?
(Talvez importe se é um SSD ou HDD?)
Responder1
Apesar de Formato de arquivo zip foi definido para permitir acréscimos rápidos sem copiar novamente o arquivo inteiro, não conheço nenhum programa Zip/7Zip que faça isso.
O arquivo Zip contém um diretório interno que permite acesso direto a qualquer item incluído. O diretório é armazenado no final do arquivo e todos os itens, incluindo o diretório, são identificados por um cabeçalho.
Em princípio, anexar um novo item ao arquivo pode ser feito anexando-o ao arquivo e, em seguida, anexando um novo diretório. No entanto, uma falha no computador antes que o novo diretório tenha sido completamente gravado e liberado no disco pode deixar o arquivo com lixo no final.
Embora, em teoria, isso ainda possa ser recuperado examinando-se o final do arquivo em busca do cabeçalho do último diretório gravado, um programa que apenas espera encontrar o diretório no final do arquivo falhará, anunciando um arquivo corrompido.
Testei anexar um arquivo a um arquivo para dois produtos Zip e para 7Zip, consultando o endereço de disco do arquivo antes e depois da operação. Eu usei para isso o
fsutil file queryextents
comando.
Nenhum dos três produtos tentou otimizar a operação de acréscimo. Todos os três copiaram novamente o arquivo inteiro ao anexar o novo item.
Minha conclusão é que, embora tal produto otimizador possa existir, é melhor testar se o seu é um desses produtos. Sem testes, a suposição padrão deveria ser que o arquivo seria recopiado.