uses VCLUnZip, VCLZip;
function ComPressFile(dstFile,srcFile:string):Boolean;
var
vclzip:TVCLZip;
begin
Result:=False;
vclzip:=TVCLZip.create(nil);
try
with vclzip do
begin
try
ZipName:=dstFile;
RecreateDirs:=true; //注意这里
StorePaths:=False;
FilesList.Add(srcFile);
Recurse := True;
Zip;
Result:=True;
except
Application.MessageBox('压缩文件失败','错误',MB_OK+MB_ICONINFORMATION);
Result:=False;
exit;
end;
end;
finally
vclzip.Free;
end;
end;
function UnComPressFile(sFile,sOutFile:string):Boolean;
var
vcluzip:TVCLUnZip;
begin
Result:=False;
vcluzip:=TVCLUnZip.Create(nil);
try
with vcluzip do
begin
try
ZipName:=sFile;
ReadZip;
FilesList.Add('*.*');
DoAll := False;
DestDir := sOutFile;
RecreateDirs := False;
RetainAttributes := True;
Unzip;
Result:=True;
except
Application.MessageBox('解压文件失败','错误',MB_OK+MB_ICONINFORMATION);
Result:=False;
exit;
end;
end;
finally
vcluzip.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ls_dir, ls_SysTempDir: string;
begin
//if not OpenDialog1.Execute then exit;
if not SelectDirectory('请指定文件夹', '', ls_dir) then exit;
// VCLZip1.ZipName :=
ls_SysTempDir := GetEnvironmentVariable('Temp') + '/';
VCLZip1.ZipName := ls_SysTempDir + 'ABC.db';
VCLZip1.FilesList.Add(ls_dir + '/*.jpeg');
VCLZip1.FilesList.Add(ls_dir + '/*.jpg');
VCLZip1.FilesList.Add(ls_dir + '/*.bmp');
//VCLZip1.FilesList.Add(ls_dir + '/冒险岛/*.*');
//VCLZip1.FilesList.Add(ls_dir + '/三国/*.*');
VCLZip1.Recurse := False; //不包含下级目录中的文件
VCLZip1.StorePaths := False; //不记录路径
VCLZip1.PackLevel := 9;
VCLZip1.Password := 'cvbom';
try
VCLZip1.Zip;
except
ShowMessage('Error!');
exit
end;
MessageBox(0, '压缩成功', '成功', MB_OK + MB_ICONINFORMATION);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ls_dir, ls_SysTempDir: string;
NumUnzipped: Integer;
begin
//ls_SysTempDir := GetEnvironmentVariable('Temp') + '/';
VCLUnZip1.ZipName := 'C:/Documents and Settings/yuantao/Local Settings/Temp/ABC.zip';
//VCLUnZip1.ReadZip;
VCLUnZip1.FilesList.Add('*.*');
//VCLUnZip1.FilesList.Add(VCLUnZip1.Filename[VCLUnZip1.Count - 1]);
VCLUnZip1.DoAll := True;
VCLUnZip1.Password := 'cvbom';
VCLUnZip1.DestDir := 'D:/Setup';
VCLUnZip1.RecreateDirs := True; // don't recreate directory structures
//VCLUnZip1.RetainAttributes := True;
ShowMessage(IntToStr(VCLUnZip1.UnZip));
MessageBox(0, '解压缩成功', '成功', MB_OK + MB_ICONINFORMATION);
end;