Ver Mensaje Individual
  #1  
Antiguo 23-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Clase TZipFile, para comprimir y descomprimir archivos

Hola.

Hoy estuve revisando algunas de las novedades de Delphi XE2, llamando mi atención una clase nativa de nombre TZipFile cuyo propósito es permitir la creación de archivos comprimidos ZIP, así como la extracción del contenido de ese tipo de archivos.

Después de hacer unas pruebas con esta clase, consideré que valdría la pena mostrarles el código, para quien pudiera servirle:

Código Delphi [-]
Uses
  System.Zip;

Procedure TForm1.Button1Click(Sender: TObject);
Var
  Zip :TZipFile;
Begin
  { Creamos un archivo ZIP de nombre "Prueba.zip", comprimiendo dentro de
    él los archivos Carta.txt y Dibujo.bmp }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmWrite);
    Zip.Add ('C:\Delphi\Ejemplos\TZipFile\Carta.txt');
    Zip.Add ('C:\Delphi\Ejemplos\TZipFile\Dibujo.bmp');
  Finally
    Zip.Free;
  End;
End;

procedure TForm1.Button2Click(Sender: TObject);
Var
  I :Integer;
  Zip :TZipFile;
Begin
  { Abrimos el archivo Prueba.zip y mostramos dentro de Memo1 el nombre de
    los archivos comprimidos que contiene }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmRead);
    Memo1.Clear;

    For I := 0 To High (Zip.FileNames) Do
      Memo1.Lines.Add (Zip.FileNames [i]);
  Finally
    Zip.Free;
  End;
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
  Zip :TZipFile;
Begin
  { Extraemos en el directorio C:\Delphi\Ejemplos\TZipFile los archivos que
    están dentro de Prueba.zip }

  Zip := TZipFile.Create;

  Try
    Zip.Open ('C:\Delphi\Ejemplos\TZipFile\Prueba.zip', zmRead);
    Zip.ExtractAll('C:\Delphi\Ejemplos\TZipFile');
  Finally
    Zip.Free;
  End;
End;

Por cierto, encontré este artículo de nuestro buen amigo Germán Estévez, en donde explica con mucho mayor detalle esta característica.

Saludos.

Al González.

Última edición por Al González fecha: 23-10-2012 a las 09:05:18.
Responder Con Cita