在不同语言环境中,要判断一个文件是否重复比较麻烦。通过文件的一般标准的sha1算法,得到文件的HASH值判断文件重复是可行的,多可文档系统即可中提供了delphi语言的判断函数,如下:

unit IdHashSHA;

function FileSHA1(const FileName: string): string;
var
    InStream: TFileStream;
    SHA1: TIdHashSHA1;
begin
    SHA1 := TIdHashSHA1.Create;
    InStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
        InStream.Position := 0;
        Result := SHA1.HashStreamAsHex(InStream).ToLower;
        // certutil -hashfile 文件 SHA1 微软SHA-1校验
    finally
        // R := nil;
        InStream.Free();
        SHA1.Free();
    end;
end;