Как тут уже писали - все гениальное просто.
Просто запакуй файлы с помощью zlib.
Начиная с Delphi 6, в поставке есть готовые потоки с поддержкой сжатия. Т.е. тебе нужна будет спец утилитка для подготовки файлов (сжатия их). а читать надо через соотв. поток.
Я делаю вот так:
Код:
procedure TModelBase.BackupToFile(AFileName: String);
var
AStream : TFileStream;
AZLib : TCompressionStream;
begin
AStream := TFileStream.Create(AFileName,fmCreate);
AZLib := TCompressionStream.Create(clMax,AStream);
Try
SaveToStream(AZLib);
Finally
AZLib.Free;
AStream.Free;
End;
end;
procedure TModelBase.RestoreFromFile(AFileName: String);
var
AZLib : TDecompressionStream;
AStream : TFileStream;
begin
AStream := TFileStream.Create(AFileName,fmOpenRead);
AZLib := TDecompressionStream.Create(AStream);
Try
LoadFromStream(AZLib);
Finally
AZLib.Free;
AStream.Free;
End;
end;
Методы LoadFromStream и SaveToStream внутри работают с обычным потоком (TStream).