ClipaTec Informática

Receba novidades por e-mail. Digite seu e-mail abaixo e clique no botão "Cadastrar"

Delivered by FeedBurner

12 de janeiro de 2023

Compactando arquivos com Delphi

compactacao arquivo delphi

Olá gente boa! No artigo de hoje, vamos aprender como implementar a compactação de arquivos, de forma nativa no Delphi.

Em versões mais antigas do Delphi, era comum utilizar a biblioteca "ZLib" presente na unit "System.ZLib", porém, utilizando essa biblioteca, tínhamos um problema, o arquivo compactado gerado não era compatível com outros aplicativos, como WinRar, 7Zip, etc, sendo assim, se o arquivo fosse enviado para alguém, este alguém não conseguiria abrir ou extrair este arquivo, a menos que, tivesse um aplicativo para isso, que utilizasse esta mesma biblioteca, para então conseguir abrir, visualizar e extrair.

Ora, isso não era interessante do ponto de vista usual, uma vez que, esta funcionalidade ficava "Delphi to Delphi", ou seja, só era possível descompactar usando um aplicativo, cuja implementação fosse feita com essa mesma biblioteca.

Nas versões novas do Delphi, surge a classe "TZipFile", presente na unit "System.Zip". Esta nova biblioteca, resolve o problema anterior.

A classe TZipFile é utilizada para criar e ler arquivos ".zip", ela dispõe de métodos para compactar e descompactar arquivos no formato .zip.

Ao implementar métodos para compactação e descompactação de arquivos usando a classe TZipFile, fica compatível com outros aplicativos do mercado, como o WinRAR, 7Zip por exemplo. Agora, você pode compactar arquivos, enviar para alguém, e este alguém, vai conseguir abrir e extrair esses arquivos sem problema algum, utilizando qualquer aplicativo que ele tenha instalado no computador para isso.

Muito bem, chega de teoria e vamos para a prática, segue abaixo o código para implementação da compactação de arquivos no Delphi:

compactando arquivos com delphi


Primeiro passo, é dar uses na unit 
"System.Zip" que contém a classe TZipFile, que vamos utilizar para esta implementação.
Feito isso, declaramos um método chamado "CompactarArquivos". Na implementação dele, declaramos três variáveis:

  • lArqZip: TZipFile -> que receberá uma instância da classe TZipFile;
  • lDestino: string -> que receberá o diretório onde será gerado o arquivo compactado;
  • lNome: string -> que receberá o nome do arquivo ZIP que será gerado;
Por meio do método Open, o arquivo é preparado para leitura ou gravação, e por parâmetro, passamos o local + nome do arquivo ZIP que será gerado. Note que neste método, no último parâmetro, estamos definindo que o arquivo será escrito/criado: zmWrite.

Através do método Add passamos por parâmetro o local + nome dos arquivos que serão adicionados no arquivo compactado ZIP.

Pronto, somente com essas linhas já teremos o arquivo ZIP gerado com os arquivos adicionados.

Note que não foi necessário chamarmos o método Close no final, visto que, o mesmo é chamado automaticamente na destruição do objeto.

Muito bem clipatequeiros, viram como é simples, fácil e prático? Agora, você pode usar esta implementação, modifica-la de acordo com suas necessidades, mais um recurso interessante que nos livra de ficar usando bibliotecas externas ou via linha de comando como outrora. Um grande abraço, que esta dica contribua de alguma maneira no seu dia a dia como programador.

Links:

- TZipFile - Embarcadero;

- Descompactando arquivos com Delphi;

(Por ClipaTec Informática)

0 comments:

Postar um comentário

Visite nossa página de Política de comentarios antes de comentar para ter certeza de que seu comentário não será excluído! Lembre-se, assim que aprovarmos o teu comentário ele será publicado, por isso, não deixe de sempre visitar nosso blog e conferir nossa resposta ao seu comentário, abraço!