



Atualmente é muito comum o uso de arquivos ZIP, seja para backups ou para transferência de dados.
Durante muito tempo, sempre foi necessário o uso de componentes de terceiros para a
execução desta tarefa.
A partir do Delphi XE 2, há disponível a unit System.Zip, que facilitará este trabalho.
Eliminando a necessidade do uso de componentes.
Veja os exemplos:
Criando um ZIP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function CriarZipFile(FZipFile, AFileName: string): Integer; var z: TZipFile; begin result := 0; z := TZipFile.Create; try if fileExists(FZipFile) then z.Open(FZipFile, zmReadWrite) else z.Open(FZipFile, zmWrite); z.Add(AFileName, extractFileName(AFileName)); z.Close; result := 1; finally z.Free; end; end; |
Descompactando o ZIP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function ZipFileDecompress(FZipFile, APath: string): Integer; var z: TZipFile; begin result := 0; z := TZipFile.Create; try if fileExists(FZipFile) then z.Open(FZipFile, zmReadWrite) else raise exception.Create('Não encontrei: ' + FZipFile); z.ExtractAll(APath); z.Close; result := 1; finally z.Free; end; end; |
A unit System.Zip ainda oferece outros recursos, que será tema de outros posts.
Autor original: Amarildo Lacerda
Este texto foi escrito bom base no material disponível em:
https://github.com/amarildolacerda/docs/blob/master/DelphiXFirebid.pdf
Dúvidas ou sugestões deixe nos comentários do post.
Você precisa fazer o login para publicar um comentário.
Ótimo exemplo, bem mais simples que usar zlib.
Ótima dica, essa classe é mais interessante e simples que a zlib que se torna complexa quando se faz necessário compactar mais de um arquivo.
como eu implemento isto em um botão ou 2 botoes?