Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с архивами ZIP в Delphi: создание архива и настройка параметров

Delphi , Компоненты и Классы , Библиотеки компонент

В данной статье мы рассмотрим, как работать с архивами ZIP в Delphi, а именно: как создавать архивы и настраивать параметры сжатия при их создании. Для этого мы будем использовать компоненты и функции, предоставляемые встроенным модулем ZipForge.

Создание архива ZIP

Для начала давайте создадим простой архив ZIP, содержащий несколько файлов. Создайте новую форму в Delphi и поместите на нее следующие компоненты:

  • TButton (Knopka1)
  • TOpenDialog (OpenDialog1)
  • TSaveDialog (SaveDialog1)
  • TZipListBox (ZipListBox1)

В коде формы добавьте следующие переменные и процедуры:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, IdZip, IdZipLib;

type
  TForm1 = class(TForm)
    Knopka1: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    ZipListBox1: TZipListBox;
    procedure Knopka1Click(Sender: TObject);
  private
    { Private declarations }
    FZip: TIdZip;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Knopka1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    SaveDialog1.InitialDir := OpenDialog1.Dir;
    if SaveDialog1.Execute then
    begin
      FZip := TIdZip.Create(nil);
      try
        FZip.EncryptionMethod := idzipemNone;
        FZip.Open(SaveDialog1.FileName, fmCreate);
        FZip.AddFile(OpenDialog1.FileName, OpenDialog1.FileName);
        FZip.SaveToStream(FZip);
        ZipListBox1.Items.Assign(FZip.GetFilesList);
      finally
        FZip.Free;
      end;
    end;
  end;
end;

end.

В данном примере мы создаем экземпляр компонента TIdZip, открываем его для создания архива, добавляем в архив файл, указанный в OpenDialog1, сохраняем архив в файл, указанный в SaveDialog1, и заполняем список файлов в ZipListBox1.

Настройка параметров сжатия

Теперь давайте посмотрим, как настроить параметры сжатия при создании архива ZIP. Для этого мы можем использовать свойства компонента TIdZip, такие как CompressionLevel, CompressionMethod и т.д.

Добавьте на форму компоненты TComboBox (ComboBox1 и ComboBox2) и TTrackBar (TrackBar1). В коде формы добавьте следующие переменные и процедуры:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, IdZip, IdZipLib;

type
  TForm1 = class(TForm)
    Knopka1: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    ZipListBox1: TZipListBox;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    TrackBar1: TTrackBar;
    procedure Knopka1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private declarations }
    FZip: TIdZip;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Knopka1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    SaveDialog1.InitialDir := OpenDialog1.Dir;
    if SaveDialog1.Execute then
    begin
      FZip := TIdZip.Create(nil);
      try
        FZip.EncryptionMethod := idzipemNone;
        FZip.CompressionLevel := TrackBar1.Position;
        FZip.CompressionMethod := ComboBox1.ItemIndex;
        FZip.Open(SaveDialog1.FileName, fmCreate);
        FZip.AddFile(OpenDialog1.FileName, OpenDialog1.FileName);
        FZip.SaveToStream(FZip);
        ZipListBox1.Items.Assign(FZip.GetFilesList);
      finally
        FZip.Free;
      end;
    end;
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  FZip.CompressionMethod := ComboBox1.ItemIndex;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
  FZip.EncryptionMethod := ComboBox2.ItemIndex;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  FZip.CompressionLevel := TrackBar1.Position;
end;

end.

В данном примере мы добавили

Создано по материалам из источника по ссылке.

В данной статье рассматривается процесс создания архивов ZIP в среде Delphi с использованием встроенного модуля ZipForge и настройка параметров сжатия при их создании.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Библиотеки компонент ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 21:27:47/0.0057811737060547/0