Visão geral
Arquivos que consistem em entradas possuem o método createEntries para compactar a pasta inteira. Tais métodos respeitam a estrutura de diretórios e são compostos recorrentemente para todas as subpastas. Além disso, você pode adicionar uma única entrada de arquivo a uma subpasta arbitrária em qualquer lugar do arquivo.Como compactar uma pasta
Se quiser criar um arquivo ZIP de uma pasta inteira preservando a estrutura, você pode usar a API Aspose.Zip para Java e o código a seguir. A construção try-with-resources fecha automaticamente o recurso Archive depois que todo o código foi executado, independentemente de todos os arquivos terem sido fechados corretamente. O caminho especificado no objeto Arquivo corpus indica a pasta que será compactada. Com createEntries, cada elemento do arquivo é adicionado separadamente, preservando assim a estrutura original, que é armazenada em um arquivo chamado archive.zip. É importante ressaltar que o código não verifica a existência da pasta “D:\Data” ou a presença de arquivos nela. Se o diretório não existir ou estiver vazio, o código não criará nenhum arquivo.
O método
CreateEntries
possui um segundo parâmetro opcional includeRootDirectory que indica se o diretório raiz precisa ser incluído no arquivo. O padrão é verdadeiro, portanto, no exemplo acima, todas as entradas do arquivo estarão localizadas na pasta "Dados". Se você deseja que apenas o conteúdo do diretório seja adicionado, passe false lá.
Exemplo - Criar arquivo da pasta:
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
O exemplo de código a seguir cria um arquivo ZIP com dois arquivos: "image.bmp" e "lyrics.txt". As variáveis fi1 e fi2 representam esses arquivos. O método createEntry do objeto de arquivo é usado para adicionar cada arquivo ao arquivo com os caminhos especificados: "data\pictures" para "image.bmp" e "data\text" para "lyrics.txt". Em resumo, este código cria um arquivo ZIP denominado "archive.zip" contendo duas pastas, "data\pictures" e "data\text", cada uma contendo um dos respectivos arquivos.
try (Archive archive = new Archive()) {
File fi1 = new File("image.bmp");
File fi2 = new File("lyrics.txt");
archive.createEntry("data\\pictures\\photo.bmp", fi1);
archive.createEntry("data\\text\\song.txt", fi2);
archive.save("archive.zip");
}
Como compactar pasta no 7-ZIP respeitando sua estrutura
O código a seguir demonstra como criar um arquivo 7Z e adicionar a ele todos os arquivos e pastas do diretório especificado. Funciona de forma semelhante a um arquivo com formato ZIP. CreateEntries é o método analógico do arquivo 7Z. Também possui o parâmetro includeRootDirectory. Importante: será implementado em Aspose.ZIP for Java 24.4
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
Como compactar uma pasta no TAR mantendo sua estrutura
O código cria um arquivo TAR para o diretório especificado. Ele utiliza a classe TarArchive da API Java Archive para conseguir isso. O método
createEntries
adiciona todos os arquivos e pastas do diretório ao arquivo, preservando a estrutura de diretórios. Finalmente, o método save grava o conteúdo do arquivo no arquivo "archive.tar".
Amostra:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
O código fornecido cria um arquivo TAR denominado "archive.tar" contendo duas entradas. Directory Archive - Adiciona todos os arquivos e pastas do diretório "D:\Data" ao arquivo, preservando a estrutura de diretórios. Isso arquiva efetivamente todo o conteúdo do diretório especificado. E entrada de arquivo único - adiciona um arquivo específico chamado "data.bin" da subpasta "interna" ao arquivo. Isso permite incluir um arquivo específico sem arquivar toda a estrutura de diretórios. Em resumo, esse código cria um arquivo TAR que combina arquivamento em nível de diretório e inclusão de arquivo individual.
Exemplo 2 – Combine o diretório de arquivamento e
arquivo único
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
Outros recursos da API Aspose.ZIP com suporte para Java
Com a biblioteca Aspose.ZIP em Java, você pode lidar perfeitamente com várias tarefas relacionadas a documentos de arquivo ZIP. Se você precisa converter formatos, mesclar arquivos, editar conteúdo ou extrair dados, o Aspose.ZIP oferece funcionalidade abrangente para agilizar seu fluxo de trabalho e aumentar a produtividade.
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories