Início > Archive Zip > Archive Zip: Zipando e Extraindo Arquivos (Parte I)

Archive Zip: Zipando e Extraindo Arquivos (Parte I)

O Archive::Zip é um módulo Perl que nos permite trabalhar com arquivos Zip.

Podemos tanto extrair como “zipar” arquivos com ele. Mas o que é zipar?  Zipar é um termo que significa compactar arquivos.

Para compactar, extrair, modificar arquivos, enfim, realizar qualquer tarefa com arquivos compressos, o Archive::Zip é uma excelente alternativa se você não está, ou não deseja depender dos comandos de um ambiente Unix.

Como em todos estes exemplos utilizaremos o Archive Zip, podemos já chamar o módulo para nosso programa:

use Archive::Zip;

Agora vamos ver como utilizá-lo em algumas tarefas.

Compactando Arquivos

O primeiro passo é criar uma instância do programa e armazená-la em uma variável.

my $zip    = new Archive::Zip( );

Agora todo o conteúdo que desejamos colocar em nosso arquivo zip deverá ser inserido na variável $zip.

Existem várias alternativas para fazermos isto. Iremos mostrar como realizar esta tarefa utilizando três comandos diferentes: inserindo pastas, inserindo arquivos e criando de arquivos.

  1. Inserindo pastas com addTree( )

    $zip->addTree(“C:/arquivos”);

    Com o código acima, todo o conteúdo da pasta “C:/arquivos” será adicionado no arquivo zip.

  2. Inserindo arquivos com addFile( )

    $zip->addFile( ‘original.txt’, ‘novo.txt’);

    O comando addFile nos permite passar dois argumentos, sendo somente o primeiro obrigatório. Estes representam [localdoarquivo,][destinoarquivo]. Em nosso exemplo, o arquivo ‘original.txt’ será adicionado ao arquivo zip, porém, com o nome ‘novo.txt’.

  3. Criando arquivos com addString( )

    $zip->addString( ‘Olá Mundo!’, “texto.txt”);

    O código acima criará um arquivo chamado “texto.txt” contendo as palavras “Olá Mundo!” em seu conteúdo.

Após inserir os arquivos desejados na variável $zip, podemos transferir então os dados para arquivo com apenas uma função, a writeToFileNamed( ).

$zip->writeToFileNamed( ‘C:/arquivos.zip’ );

 


 Veja o Código Completo:
(zip-exemplo1.pl)

#!/usr/bin/perl
use Archive::Zip;

$pasta=”C:/arquivos”;          # Pasta original
$saida=” C:/arquivos.zip”;    # Arquivo compactado de saída

my $zip    = new Archive::Zip( ); # Cria uma nova instância

$zip->addTree( $pasta ); # Adiciona uma pasta
$zip->addFile( ‘original.txt’, ‘novo.txt’); # Adiciona um arquivo
$zip->addString( ‘Olá Mundo!’, ‘texto.txt’ ); # Cria um arquivo

die “Erro ao Gravar” unless $zip->writeToFileNamed( $saida ) == AZ_OK;
# Se não obter erros, cria arquivo zipado

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: