本文整理自网络,侵删。
function Zip(ZipMode,PackSize:Integer;ZipFile,UnzipDir:String):Boolean; //压缩或解压缩文件var ziper:TVCLZip;begin //函数用法:Zip(压缩模式,压缩包大小,压缩文件,解压目录) //ZipMode为0:压缩;为1:解压缩 PackSize为0则不分包;否则为分包的大小 try if copy(UnzipDir, length(UnzipDir), 1) = '/ ' then UnzipDir := copy(UnzipDir, 1, length(UnzipDir) - 1); //去除目录后的“/” ziper:=TVCLZip.Create(application); //创建zipper ziper.DoAll:=true; //加此设置将对分包文件解压缩有效 ziper.OverwriteMode:=Always; //总是覆盖模式 if PackSize <> 0 then begin //如果为0则压缩成一个文件,否则压成多文件 ziper.MultiZipInfo.MultiMode:=mmBlocks; //设置分包模式 ziper.MultiZipInfo.SaveZipInfoOnFirstDisk:=True; //打包信息保存在第一文件中 ziper.MultiZipInfo.FirstBlockSize:=PackSize; //分包首文件大小 ziper.MultiZipInfo.BlockSize:=PackSize; //其他分包文件大小 end; ziper.FilesList.Clear; ziper.ZipName := ZipFile; //获取压缩文件名 if ZipMode=0 then begin //压缩文件处理 ziper.FilesList.Add(UnzipDir+ '/*.* '); //添加解压缩文件列表 Application.ProcessMessages; //响应WINDOWS事件 ziper.Zip; //压缩 end else begin ziper.DestDir:= UnzipDir; //解压缩的目标目录 ziper.UnZip; //解压缩 end; ziper.Free; //释放压缩工具资源 Result:=True; //执行成功 except Result:=False; //执行失败 end;end;
相关阅读 >>
Delphi ado 连接 excel (附excel各个版本的版本号)
Delphi windows 编程[10] - wm_lbuttondown、wm_lbuttonup 和 wm_mousemove 消息
Delphi使用idhttp.get('') 造成假死(堵塞),请问线程idhttp怎么才能做到不出错?
更多相关阅读请进入《Delphi》频道 >>