有关在线程中使用ziptv的问题
请问为什么我在普通winform中调用DataZip.Execute(文件名)可以生成压缩文件,但在线程中调用却不能生成呢?
unit U_Zip;
interface
uses ztvZip,SysUtils;
type
TDataZip = class(TObject)
private
{ Private declarations }
public
function Execute(FileName: string): string;
end;
var
DataZip: TDataZip;
implementation
function TDataZip.Execute(FileName: string): string;
var
zip: TZip;
Zipname: string;
i: Integer;
begin
Zipname := ExtractFilePath(FileName) + Copy(ExtractFileName(FileName),
0, Pos('.', ExtractFileName(FileName)) - 1) + '.zip';
zip := TZip.Create(nil);
zip.ArchiveFile:=Zipname;
zip.RecurseDirs:=False;
zip.ExcludeSpec.Clear();
zip.FileSpec.Clear();
zip.FileSpec.Add(FileName);
i := 0;
try
i := zip.Compress;
except
//
end;
zip.Free;
if i = 1 then
begin
if FileExists(FileName) then
DeleteFile(FileName);
result := Zipname;
end
else
result := FileName;
end;
end.