Montei uma classe para zipar arquivos… até ai tudo bem, a questão é!
Caso 1: Dentro de uma pasta contem vários arquivos, quando tento zipar estes arquivos utilizando minha classe, vai tranquilo… cria o arquivo zip e os arquivos a serem zipados estao lah todos certinhos.
Caso 2: Dentro da pasta onde tem os arquivos a se zippar tem uma outra pasta com mais arquivos. PROBLEMA: A subpasta nao é adicionada no zip.
O que eu queria:
Não apenas adicionar os arquivos da subpasta ao zip (isso eu sei fazer, e já fiz) queria que a pasta aparecesse no arquivo zip e dentro dela os arquivos contidos nela.
mas nao achei formas de fazer isso, pois em todas as implementacoes q vi, era feito a leitura dos arquivos da subpasta e adicionados ao zip, onde dentro do zip eles nao estavam em uma subpasta como antes de serem zipados.
O programa que postei gera zips com arquivos e subdiretórios. Modifique o programa para suas necessidades.[/quote]
Eu tenho uma solução parecida também, esta aqui, que serve para comprimir e para descomprimir.
Achei ambas solucoes muito boas, mas no caso do entanglement o programinha apresentado foi mais produtivo pois tem o fonte. Implementei o seu código, e funcionou muito bem.
O detalhe é que, em que ponto do seu código vc faz com que os subdiretoriso aparecam dentro do zip?
isso que nao consegui abstrair dele, e como nao gosto de usar codigos sem entender oq eles fazem…
Achei ambas solucoes muito boas, mas no caso do entanglement o programinha apresentado foi mais produtivo pois tem o fonte. Implementei o seu código, e funcionou muito bem.
O detalhe é que, em que ponto do seu código vc faz com que os subdiretoriso aparecam dentro do zip?
isso que nao consegui abstrair dele, e como nao gosto de usar codigos sem entender oq eles fazem…
tem como vc dar uma explicada?
valew![/quote]
Para criar diretórios e subdiretórios em arquivos zip, bastaria usar o caractere ‘/’ no caminho do ZipEntry para indicar que algum arquivo está dentro de um subdiretório.
Por exemplo, tu quer botar o arquivo “mane.jar” dentro do diretório “mane”, entao basta fazer um ZipEntry usando como caminho “mane/mane.jar”.