Получить хеш файла



style="display:block"
data-ad-client="ca-pub-0562610021414947"
data-ad-slot="5792664354"
data-ad-format="link">

Функция хеширование файла.

//проверка занят ли файл
function ApplicationUse (fName: string): boolean;
var
HFileRes: HFILE;
begin
Result := false;
if not FileExists (fName) then exit;
HFileRes := CreateFile (pchar (fName), GENERIC_READ or GENERIC_WRITE, 0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not Result then CloseHandle (HFileRes);
end;

 

//хеширование

function MD5 (const fileName : string) : string;

var

idmd5 : TIdHashMessageDigest5;

fs : TFileStream;

hash : T4x4LongWordRecord;

begin

idmd5 := TIdHashMessageDigest5.Create;

if not ApplicationUse (fileName) then //если файл не занят

begin

fs := TFileStream.Create (fileName, fmOpenRead OR fmShareDenyWrite) ;

try

result := idmd5.AsHex (idmd5.HashValue (fs)) ;

finally

//fs.Free;

end;

FreeAndNil (fs);

FreeAndNil (idmd5);

     //idmd5.Free;

end;

FreeAndNil (fs);

FreeAndNil (idmd5);

end;

 

Вызываем функцию

hash.Add (MD5 (‘путь к файлу+файл с расширением’));

Популярность: 0 [?]

Рубрика: Delphi, Новости · Метки:

Выразите свои мысли

Скажите нам, что вы думаете...
и если вы хотите сопроводить комментарий своей аватаркой, воспользуйтесь сервисом gravatar!