获取文件MD5值
来源:互联网 发布:淘宝网点不开旺旺 编辑:程序博客网 时间:2024/04/29 23:33
unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Math, System.Hash, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls;type TForm1 = class( TForm ) Memo1 : TMemo; Button1 : TButton; OpenDialog1 : TOpenDialog; ProgressBar1 : TProgressBar; procedure Button1Click( Sender : TObject ); procedure FormCreate( Sender : TObject ); private { Private declarations } function GetChumMd5( const fName : string ) : string; public { Public declarations } end;var Form1 : TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.Button1Click( Sender : TObject );var fName : string;begin if OpenDialog1.Execute then begin fName := OpenDialog1.FileName; // Edit1.Text := fName; Memo1.Lines.Add( fName ); Memo1.Lines.Add( GetChumMd5( fName ) ); end;end;procedure TForm1.FormCreate( Sender : TObject );begin Memo1.Lines.Clear; ProgressBar1.Min := 0; ProgressBar1.Max := 100;end;function TForm1.GetChumMd5( const fName : string ) : string;var md5 : THashMD5; fileStream : TFileStream; buf : TBytes; bufSize, i : Integer;begin md5 := THashMD5.Create; fileStream := TFileStream.Create( fName, fmOpenRead ); try fileStream.Position := 0; bufSize := 1024 * 1024 ; // 1M 缓冲区大小 while fileStream.Position < fileStream.Size do begin if fileStream.Position + bufSize > fileStream.Size then bufSize := fileStream.Size - fileStream.Position; SetLength( buf, bufSize ); fileStream.ReadBuffer( Pointer( buf )^, bufSize ); md5.Update( buf, bufSize ); // i := Trunc( ( fileStream.Position / fileStream.Size ) * 100 ); ProgressBar1.Position := i; Application.ProcessMessages; end; Result := md5.HashAsString.ToUpper; finally fileStream.Free; end;end;end.
在Delphi Berlin上测试通过。
0 0
- 获取文件md5值
- 获取文件md5值
- 获取文件MD5值
- asp获取文件md5值
- asp获取文件md5值
- C# 获取文件MD5值
- 获取文件的MD5值
- 获取文件的MD5值
- c 获取文件 MD5 值
- JAVA获取文件MD5值
- JAVA获取文件MD5值
- QT 获取文件MD5值
- 获取文件的MD5值
- java获取文件md5值
- java获取文件md5值
- 获取文件的MD5值
- JAVA获取文件MD5值
- java获取文件md5值
- MQTT在OPENWRT下的测试例子
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- AngularJS初学之:过滤器
- Activity学习总结
- MVC与三层架构区别
- 获取文件MD5值
- 5.3 分布式 Git - 维护项目
- 卷积神经网络的网络结构——以LeNet-5为例
- 谈一谈信息熵
- 学习VC中所得的点点心
- 面试题3
- 小笔记-pthread_cond_signal和pthread_cond_wait
- 测试的道理
- 关于Ext.application的执行顺序。