2023-02-02 12:02:14 +03:00

82 lines
2.5 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

////////////////////////////////////////////////////////////////////////////////
//
// ****************************************************************************
// * Project : FWZip
// * Unit Name : CreateZIPDemo2
// * Purpose : Демонстрация изменения добавленных записей
// * Author : Александр (Rouse_) Багель
// * Copyright : © Fangorn Wizards Lab 1998 - 2013.
// * Version : 1.0.10
// * Home Page : http://rouse.drkb.ru
// * Home Blog : http://alexander-bagel.blogspot.ru
// ****************************************************************************
// * Stable Release : http://rouse.drkb.ru/components.php#fwzip
// * Latest Source : https://github.com/AlexanderBagel/FWZip
// ****************************************************************************
//
// Используемые источники:
// ftp://ftp.info-zip.org/pub/infozip/doc/appnote-iz-latest.zip
// http://zlib.net/zlib-1.2.5.tar.gz
// http://www.base2ti.com/
//
// Данный пример показывает различные варианты изменения записей
// в еще не сформированном архиве.
program CreateZIPDemo2;
{$APPTYPE CONSOLE}
uses
SysUtils,
TypInfo,
FWZipZLib,
FWZipWriter;
var
Zip: TFWZipWriter;
Item: TFWZipWriterItem;
I: Integer;
BuildZipResult: TBuildZipResult;
begin
SetCurrentDir(ExtractFilePath(ParamStr(0)));
try
Zip := TFWZipWriter.Create;
try
// Для начала добавим в корень архива файлы из корневой директории
Zip.AddFolder('..\..\', False);
// Теперь изменим им свойства:
for I := 0 to Zip.Count - 1 do
begin
Item := Zip[I];
// Изменим коментарий
Item.Comment := 'Тестовый коментарий к файлу ' + Item.FileName;
// Установим пароль
Item.Password := 'password';
// Изменим тип сжатия
Item.CompressionLevel := TCompressionLevel(Byte(I mod 3));
end;
// Теперь каждый элемент архива имеет коментарий, зашифрован паролем и
// имеет собственную степень сжатия в зависимости от своей
// порядковой позиции в архиве.
// Ну и сам архив так-же имеет коментарий.
Zip.Comment := 'Тестовый коментарий ко всему архиву';
// создаем архив и выводим результат
ForceDirectories('..\DemoResults\');
BuildZipResult := Zip.BuildZip('..\DemoResults\CreateZIPDemo2.zip');
// ... и вывести результат
Writeln(GetEnumName(TypeInfo(TBuildZipResult), Integer(BuildZipResult)));
finally
Zip.Free;
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.