Estou tento insistentemente um retorno de "Arquivo ZIP Inválido". No entanto utilizo o Delphi 7 e adaptei o método ZipFile usando o ZipMaster para executar o processo conforme abaixo:
function ZipFile(const DadosXML: AnsiString; const NomeArquivo: String): AnsiString;
var
Z : TZipMaster;
SSIn : TStringList;
sFile : string;
ssOut : TFileStream;
function EncodeBase64(Arquivo: TFileStream): String; Var
Encoder64 : TIDEncoderMime;
lstFile: TStringList; Begin
try
try
Encoder64 := TIDEncoderMime.Create (Nil);
lstFile := TStringList.Create;
lstFile.LoadFromStream(Arquivo);
Result := Encoder64.Encode(lstFile.Text);
finally
Encoder64.Free;
lstFile.Free;
end;
except on E: Exception do
//Nada
end; end; begin
try
Z := TZipMaster.Create(nil);
SSIn := TStringList.Create;
sFile := ApplicationPath + NomeArquivo;
SSIn.Text := DadosXML;
SSIn.SaveToFile(sFile);
//Ver se Precisa
Z.ZipFileName := Copy(sFile,1,Pos('.',sFile)-1) + '.zip';
Z.FSpecArgs.Clear;
Z.FSpecArgs.Add(sFile);
Z.Add;
ssOut := TFileStream.Create(Copy(sFile,1,Pos('.',sFile)-1) + '.zip',fmOpenRead); Result := EncodeBase64(ssOut);
finally
Z.Free;
SSIn.Free;
end; end;
Alguém teve o mesmo problema com este método utilizando o Delphi 7?