序言
可能是由于Delphi版本问题,导致有些库没法再Delphi XE6使用,我只能查找资料和实验,还好完成了任务
文件MD5
新建VCL Forms Application,添加三个控件,分别是TOpenDialog, TButton和TLabel。没怎么设计UI,一顿拖放猛如虎,如下:
完整代码如下:
unit Umain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,IdHashMessageDigest,IdGlobal,IdHash;
type
TMD5 = class(TIdHashMessageDigest5);
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function StreamToMD5(s:TFileStream):string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
filesen:TFileStream;
str:string;
begin
if Opendialog1.Execute then
begin
Label1.Caption := '';
filesen:=TFileStream.Create(opendialog1.FileName,fmopenread or fmshareExclusive);
str:=StreamToMD5(filesen);
Label1.Caption := 'MD5: ' + str;
filesen.Free;
end;
end;
function TForm1.StreamToMD5(s:TFileStream):string;
var
MD5Encode:TMD5;
begin
MD5Encode:=TMD5.Create;
try
result:=md5encode.HashStreamAsHex(s);
finally
MD5Encode.Free;
end;
end;
end.
上面的代码应该有性能问题,如果文件特别大,处理起来应该会很慢,先这样吧,后面再想办法优化一下。
在Delphi XE6 中不能使用system.hash,如果能使用,我应该很早就完成这个任务了。
结语
接下来要获取文件的创建日期,修改日期,文件大小,文件类型(这个应该不着急)。暂时想到这些,后面想到什么在补充。
如有错误,敬请指出,感谢指正! — 2020-06-06 18:18:23
最新评论
我想请问下。您这部署后能够上传附件图片吗?我按照您的方式部署后。能运行。但是无法上传附件,图片。
感谢教程,但是我安装后无法上传附件。图片什么的都上传不了。您这可以吗
你这个能够添加附件图片吗?我怎么无法上传图片附件呢。。
这个软件有bug的,客户端windows有些键不能用如逗号、句号
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐