Estou procurando uma maneira de compactar uma grande pasta em muitos arquivos de 20 Mb. Não quero que o arquivo zip seja dividido em outros menores. Em vez disso, quero agrupar alguns subarquivos / pastas em grupos que são 20Mb quando compactados.
Se você souber como fazê-lo, ajude!
Atualizar
Preciso usar os arquivos compactados menores sozinhos, que podem ser descompactados sozinhos.
Minha intenção é usar o virustotal.com para digitalizar uma grande pasta.
Respostas:
No winzip: adicione os arquivos ao zip iniciando o winzip e adicionando ou arraste e solte no winzip ou clique com o botão direito do mouse nos arquivos e winzip 'add to zip ...'
Depois, no winzip:
Ações - Divida na parte inferior do 'tamanho da peça', escolha 'outro tamanho', coloque 20 e selecione mb
Feito!
fonte
O que você está propondo é essencialmente uma variação do Problema da Mochila , com o toque adicional de que, devido à compactação de arquivos, você não começa a saber quanto da sua "mochila" de 20 MB cada item ocupará.
A solução trivial, é claro, seria simplesmente compactar cada arquivo de forma independente, mas isso não reduz a contagem de arquivos, portanto desconfio que não seria uma solução satisfatória.
Se eu me desse esse problema, acho que começaria compactando cada arquivo individualmente em um local temporário (ou na memória, sem gravá-los no disco), apenas para obter um tamanho compactado aproximado para cada um. Com essas informações, seria possível decidir quais arquivos deveriam ser agrupados por qualquer uma das abordagens padrão do Problema da Mochila e criar os arquivos zip reais.
Supondo que você tenha uma linguagem de script disponível e que saiba usá-la, espero que essa abordagem seja bastante simples de automatizar; fazê-lo manualmente seria muito tedioso se você tivesse mais do que um punhado de arquivos para lidar com ...
fonte
Deixar o zip fazer a divisão para você será muito mais fácil de automatizar do que tentar descobrir sozinho. Se seu objetivo for 20 MB de arquivos zip, será necessário estimar o tamanho compactado de cada arquivo antes de adicioná-lo ao arquivo morto. Existe uma razão para você não querer apenas deixar o zip fazer a divisão para você? Aqui está como você faria isso com o gnu zip:
Isso criará 20 MB de arquivos compactados com números de índice incrementais no nome do arquivo.
fonte
No Linux, existe um programa chamado zipsplit que faz exatamente isso. Faz parte do pacote zip padrão.
Pode ser executado assim:
para dividir o bigfile.zip em partes de no máximo 20 MB. E observe que os arquivos individuais não serão divididos. Assim, cada parte pode ser descompactada individualmente. O que também significa que, se houver um único arquivo que não possa caber no tamanho máximo da peça, a divisão não será possível.
Atualização: Parece que também existem binários para Windows em info-zip.org, especificamente em ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn-x64.zip para Windows 64.
fonte
Não é uma perspectiva fácil, receio.
Recentemente, escrevi um script para reunir arquivos em subdiretórios não maiores que 4,3 GB para facilitar o armazenamento em DVD, mas tudo isso foi descompactado.
Fazendo isso com compactação - agora existe o desafio. Você não pode prever o tamanho dos arquivos após a compactação - tudo o que você pode fazer é continuar adicionando arquivos ao zip em ordem decrescente de tamanho até que exceda 20 MB e, em seguida, remover o último arquivo substituindo-o por um menor até ficar abaixo de 20 MB . Se você esgotar todos os arquivos e ele ainda tiver mais de 20 MB, basta soltar o último arquivo e passar para o próximo zip.
Bastante complicado script e um processo bastante lento e doloroso.
fonte
Eu sei que este é um tópico antigo, mas eu fiz isso com o 7-zip .
Você precisa usar a opção "Dividir em volume":
fonte
Dave parecia fornecer a solução programável mais próxima do que o OP solicitava. Eu descobri que isso também poderia ser feito manualmente , se as seguintes suposições forem tomadas (não se trata de um problema técnico puro - é mais um problema organizacional do que técnico):
Ao usar esse método com 7-zip (interface e terminal do Windows), preservei a compactação nos arquivos zip recém-gerados.
Comece compactando todos os arquivos em um único arquivo zip em uma pasta vazia (com o método de compactação desejado), por exemplo
ALL.zip
, e abra-o:Test
botão para confirmar o tamanho coletivo (isso considera a compactação):Extract
ouCopy
enquanto adiciona ao final do caminho de extração o nome de uma nova pasta (por exemploplu_8MB
:)ALL.zip
zip, exclua esses arquivos que você acabou de extrair (evitando re-extrações equivocadas) e navegue até a próxima pasta ou subconjunto de arquivos;ALL.zip
em pastas independentes, exclua esse zip e abra o terminal nessa pasta ;Tipo:
Pressione ENTERe isso gerará um arquivo zip para cada pasta que você acabou de extrair.
fonte