|
用DELPHI实现文件加密压缩(9) try repeat //读入实际大小 sjRead := jyl.Read(buf, sizeof(buf)); if sjread > 0 then OutStream.Write(buf, sjRead); until (sjRead = 0); finally jyl.Free; end; end;
//**************************************************************
//实现关联注册 procedure Tmyzip.regzzz; var reg: TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_CLASSES_ROOT; reg.OpenKey('.zzz', true); reg.WriteString('', 'myzip'); reg.CloseKey; reg.OpenKey('myzip\shell\open\command', true); //用于打开.zzz文件的可执行程序 reg.WriteString('', '"' + application.ExeName + '" "%1"'); reg.CloseKey; reg.OpenKey('myzip\DefaultIcon',true); //取当前可执行程序的图标为.zzz文件的图标 reg.WriteString('',''+application.ExeName+',0'); reg.Free; //立即刷新 SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
//压缩文件 procedure Tmyzip.ys_file(infileName, outfileName: string;passWord:pass;isjm:boolean;ysbz:integer); { infileName://需要压缩加密的文件 outfileName://压缩加密后产生的文件 passWord://解压密码 ysbz://压缩标准 } var instream:TMemoryStream; //文件加密后的临时流 outStream: TFileStream; //压缩输出文件流
begin //创建 [文件加密后的临时流] instream:=TMemoryStream.Create; //文件加密 jm_file(infileName,instream,passWord,isjm);
|