Quick Tips : Compactar e Descompactar com Winrar + Delphi - Parte I

Veja nesta Quick como descompactar um arquivo usando o Winrar.

Olá galera, nesta Quick Tip, irei mostrar uma integração com um dos mais conhecidos programas de compactação do mercado, o Winrar. Através do Help do mesmo, conseguimos fazer uma perfeita comunicação com ele a ponto de fazermos quase que um novo winrar, porém consumindo os recursos do mesmo, vou mostrar por aqui como Compactar e descompactar arquivos gerados com o Winrar, nesta primeira parte fazemos a descompactação e construção do Exemplo, e na parte seguinte a compactação finalizando assim o exemplo.

Inicialmente vamos construir uma aplicação da seguinte maneira. Vamos adicionar um Pagecontrol e duas abas.

Organize os componentes e mudo o name dos mesmos seguindo a ordem abaixo:


Figura 1: Interface da aplicação

Observação 1 : O Clique dos botões que representam uma pasta, tem um código simples, veja abaixo.

Observação 2 : Adicionar a unit uDescompactar à cláusula uses.

Listagem 1: Código do formulário

procedure TFrmPrincipal.BtnCaminhoWinrarClick(Sender: TObject); begin if OpenDialog1.Execute then EdtCaminhoWinrar.Text := OpenDialog1.FileName; end; procedure TFrmPrincipal.BtnArquivoOriginalClick(Sender: TObject); begin if OpenDialog1.Execute then EdtArquivoOriginal.Text := OpenDialog1.FileName; end; procedure TFrmPrincipal.BtnDestinoClick(Sender: TObject); begin if OpenDialog1.Execute then EdtDestino.Text := OpenDialog1.FileName; end;

Vamos agora criar uma Unit para descompactação dos arquivos, salve a mesma com o nome uDescompactar. Implementamos ela abaixo:

Listagem 2: Unit uDescompactar

unit uDescompactar; interface uses Windows, Dialogs; Type TDescompactarWinrar = class private FExtensao: String; FPathDestino: String; FArquivoOriginal: String; FPathInstalacao: String; procedure SetArquivoOriginal(const Value: String); procedure SetPathDestino(const Value: String); procedure SetExtensao(const Value: String); procedure SetPathInstalacao(const Value: String); { private declarations } protected { protected declarations } public { public declarations } property PathDestino : String read FPathDestino write SetPathDestino; property Extensao : String read FExtensao write SetExtensao; property ArquivoOriginal : String read FArquivoOriginal write SetArquivoOrigi SetArquivoOriginal; property PathInstalacao : String read FPathInstalacao write SetPathInstalacao; procedure Descompactar; end; implementation   { TDescompactarWinrar } procedure TDescompactarWinrar.Descompactar; Var cmd : String; begin Cmd := PathInstalacao + ' x ' + ArquivoOriginal + ' ' + Extensao + ' ' + PathDe PathDestino; WinExec( PAnsiChar(AnsiString(Cmd)), SW_HIDE); Showmessage('Arquivo descompactado com sucesso !!!'); end;   procedure TDescompactarWinrar.SetArquivoOriginal(const Value: String); begin FArquivoOriginal := Value; end;   procedure TDescompactarWinrar.SetPathDestino(const Value: String); begin FPathDestino := Value; end;   procedure TDescompactarWinrar.SetExtensao(const Value: String); begin FExtensao := Value; end;   procedure TDescompactarWinrar.SetPathInstalacao(const Value: String); begin FPathInstalacao := Value; end;   end.

Observação 3 : Nesta unit podemos observar o código da procedure descompactar, nela definimos o comando que o help do Winrar demonstra para descompactação.

Para finalizarmos a função do Clique do BtnDescompactar.

Listagem 3: Clique do botão BtnDescompactar

procedure TFrmPrincipal.BtnDescompactarClick(Sender: TObject); Var        DescompactarWinrar : TDescompactarWinrar; begin   Try        DescompactarWinrar := TDescompactarWinrar.Create;        with DescompactarWinrar do        begin               ArquivoOriginal := EdtArquivoOriginal.Text;               Extensao := EdtExtensao.Text;               PathDestino := EdtDestino.Text;               PathInstalacao := EdtCaminhoWinrar.Text;               Descompactar;        end;        Finally          FreeAndNil(DescompactarWinrar);        end; end;

Fico por aqui ate a próxima Quick Tip, onde veremos a parte de Compactação dos arquivos.

Um abraço.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados