Delphi VCLZip实现分卷压缩


本文整理自网络,侵删。

 
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 d10.x 并行库ppl编程之 futures

Delphi 根据进程pid获取程序所在路径的函数

Delphi speedbutton按钮动态加载图片(从image和imagelist)

Delphi 记事本与计算器的调用

Delphi中combobox.items.indexof用法

Delphi 禁止用户关闭操作系统

Delphi 调用dos nbtstat 并获得结果

Delphi 农历源码

Delphi开发ie右键菜单扩展

Delphi 捕捉异常 try except语句 和 try finally语句用法以及区别

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...