В Lazarus и вообще в паскале есть возможность создавать zip и разархивировать? Я уже двое суток безуспешно ищу эту информацию в интернете. Все способы, которые находятся не работают. На вики сайте freepascal предложенные способы тоже не работают выдавая кучу ошибок. Только один способ, который я нашёл на каком-то сайте сработал, но он записывает в архив весь абсолютный путь. Вручную такой архив открывается, а вот средствами паскаля нет из-за того, что в архив копируется весь путь, все папки вместе с буквой диска.
Вот этот способ.
Архивация:
Uses zipper;
var
a : TZipper;
b : TZipFileEntries;
begin
b := TZipFileEntries.Create(TZipFileEntry);
b.AddFileEntry('D:\one.txt'); //путь к архивируемому файлу
a :=TZipper.Create;
a.FileName:='D:\one.zip'; //указание пути к создаваемому архиву
a.ZipFiles(b);
a.Free;
b.Free;
readln;
end.
В архиве теперь такой путь D:\one.zip\D:\one.txt
При распаковке ничего никуда на распаковывается, но если создать архив вручную и закинуть туда файл то рабтает при помощи вот такого кода:
var
b : TUnZipper;
k : string;
begin
b := TUnzipper.Create;
k := 'D:\one.zip'; //указываем путь к архиву
try
b.FileName := k;
b.OutputPath := 'D:\too'; //указываем куда распаковать
b.Examine;
b.UnZipAllFiles;
finally
b.free;
end;
readln;
end.