我该如何获取一个exe
文件的内容并将其转换为Base64
编码?
编辑
我使用D2010
,我想知道这究竟是如何实现的?
打开一个exe文件
将其内容转换为base64
我该如何获取一个exe
文件的内容并将其转换为Base64
编码?
编辑
我使用D2010
,我想知道这究竟是如何实现的?
打开一个exe文件
将其内容转换为base64
在Delphi 2009/2010/XE中有一个单元EncdDecd.pas
(对于Delphi XE2是Soap.EncdDecd.pas
),其中包含函数EncodeBase64
和DecodeBase64
。您可以将exe文件加载到内存流中,然后调用EncodeBase64。
function EncodeFile(const FileName: string): AnsiString;
var
stream: TMemoryStream;
begin
stream := TMemoryStream.Create;
try
stream.LoadFromFile(Filename);
result := EncodeBase64(stream.Memory, stream.Size);
finally
stream.Free;
end;
end;
正如评论中提到的那样,自 Delphi XE8 起,您可以使用 System.NetEncoding.TNetEncoding.Base64
类属性。
它还返回一个 string
而不是一个 AnsiString
:
function TryEncodeFile(const AFileName: string; out ABase64string: string): Boolean;
var
MemStream: TMemoryStream;
begin
MemStream := TMemoryStream.Create;
try
MemStream.LoadFromFile(AFileName);
ABase64string :=
TNetEncoding.Base64.EncodeBytesToString(MemStream.Memory, MemStream.Size);
Result := True;
finally
MemStream.Free;
end;
end;