我想檢查文件是否具有有效的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