我想检查文件是否具有有效的IMAGE_DOS_SIGNATURE(MZ)是否有效IMAGE_DOS_SIGNATURE
function isMZ(FileName : String) : boolean;
var
Signature: Word;
fexe: TFileStream;
begin
result:=false;
try
fexe := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone);
fexe.ReadBuffer(Signature, SizeOf(Signature));
if Signature = $5A4D { 'MZ' } then
result:=true;
finally
fexe.free;
end;
end;
我知道我可以使用一些代码在Windows单元检查IMAGE_DOS_SIGNATURE。问题是我想最快的方式检查IMAGE_DOS_SIGNATURE(对于一个大文件)。我需要你对我的代码或者一个新的代码的建议?
感谢
将数据从磁盘传输到内存将是最大的瓶颈。优化它,并在以后担心其他瓶颈。您已经非常优化:只在每个文件的开头读取2个字节。 – 2010-04-21 11:44:48