Das Problem ist halt das es kleine oder auch richtig große Dateien sein können.
Einfach 7Zip nehmen:
Delphi-Quellcode:
uses
mormot.core.base,
mormot.core.text,
mormot.core.unicode,
mormot.core.os,
mormot.lib.win7zip;
begin
var dataFile: TFileName := MakePath([Executable.ProgramFilePath, 'TestData.dat']);
var libWriter: I7zWriter := New7zWriter(fh7z);
libWriter.SetCompressionLevel(3);
libWriter.SetPassword('TopSecret');
if libWriter.AddFile(dataFile, StringToUtf8(ExtractFileName(dataFile))) then
libWriter.SaveToFile(MakePath([Executable.ProgramFilePath, 'TestData.7z']))
else
ShowMessage('Something went wrong!');
Die 7za.dll kann von der offiziellen Seite geladen werden.
Bis bald...
Thomas