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 seja importante se é um SSD ou HDD?)
Embora o formato de arquivo Zip tenha sido definido para permitir anexos rápidos sem copiar novamente todo o arquivo, não conheço um 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 morto e, em seguida, anexando um novo diretório. No entanto, uma falha do 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 pela varredura do final do arquivo para o cabeçalho do último diretório escrito, 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 do 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 recopiaram todo o arquivo ao anexar o novo item.
Minha conclusão é que, embora possa existir um produto tão otimizador, é melhor testar se o seu é um deles. Sem testar, a suposição padrão deve ser que o arquivo será recopiado.