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

Anúncios
  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: