getStream := TFileStream.Create(FileName, fmOpenRead or fmShareExclusive);
      MyMD5 := TIdHashMessageDigest5.Create;
      Digest := MyMD5.HashValue(getStream);
      getStream.Free;
//      MessageBox(0,pchar( MyMD5.AsHex(Digest)),pchar('系统信息'),MB_ICONHAND);
      if MyMD5.AsHex(Digest) = gs_md5 then
        Result := 0我是这样的写的,但是连续校验的时候会出现错误,还有什么方法?怎么不能上传附件呢?

解决方案 »

  1.   


    function TIdHash.HashStreamAsHex(AStream: TStream): String;用Indy的IdHash试试。报的什么错误也不发出来。
      

  2.   

    楼上报个邮箱,发个test给你,帮我看看
      

  3.   

    Exception EFOpenError in module xxxx.dll at XXXXX
      

  4.   

    其实是TFileStream.Create的问题,有什么解决方法?
      

  5.   

    getStream :=TMemoryStream.Create;
    getStream .LoadFromFile(FileName);
    看了下我以前的代码 用的内存流,应该没啥区别吧
    [email protected]
      

  6.   

    换成fmShareDenyNone,暂时没出现问题,不知道和你这个效率哪个好。
    有没有更好的方法?要是主程序文件比较大,这个复制一个文件流不是开销很大?