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 form的borderstyle属性

Delphi webbrowser 无法调用当前浏览器的版本

Delphi tidhttp+tidssliohandlersocket+ssl

fastmm5

Delphi 控制音量 静音的类

Delphi远程开机再配合远程控制

Delphi实例键盘记录

Delphi中内嵌汇编

Delphi 如何在在windows平台下实现进程隐藏

Delphi字符串深入学习

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



打赏

取消

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

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

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

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

评论

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