Delphi-VclZip用法详解 (2011-09-28 23:59:18)
来源:互联网 发布:淘宝怎么提高排名信誉 编辑:程序博客网 时间:2024/04/29 01:25
转载▼
标签:
分包
目录结构
压缩文件
目标目录
信息保存
分类: 编程语言VclZip用法详
Vclzip控件主要的类为TVclUnZip 和TVclZip 其中,TVclZip继承自TVclUnZip。
网上的转帖用法:
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;
制作带目录结构的压缩指定目录:
function AddZipFile(ZipFileName,FileName: pchar):integer;stdcall;
- var
-
ziper:TVclZip; - begin
-
result:= -
try -
-
ziper:=TVclZip -
ziper -
ziper -
ziper -
ziper -
ziper -
ziper -
-
-
exit; -
-
FileExists(StrPas(ZipFileName)) then -
-
UnZipFile(ZipFileName,TempDir)= 1then -
-
ziper -
ziper -
ziper -
ziper -
result:= -
-
-
-
-
ziper -
ziper -
ziper -
result:= -
-
finally -
ziper -
把指定目录(带子目录)的所有文件压缩到一个目录下:
function AddDirAll(Dir,ZipFileName: pchar):integer;stdcall;
- var
-
Ziper:TVclZip; -
FileRec: TSearchrec; -
TempDir:String; - begin
-
FindFirst(Strpas(Dir),faAnyFile,FileRec) 0= then -
-
-
(FileRec .Attrand faDirectory) 0<> -
-
TempDir:=StrPas(Dir)+ -
AddDirAll(PChar(TempDir),ZipFileName); -
-
(FileRec .Attrand faAnyFile 0)<> then -
-
result:=AddZipFile(ZipFileName,Pchar(TempDir+ -
-
FindNext(FileRec) 0<> ; -
-
-
end;
阅读全文
0 0
- Delphi-VclZip用法详解 (2011-09-28 23:59:18)
- Delphi-VclZip用法详解
- VclZip用法详解
- VCLZip 用法
- Delphi 下 VCLZip控件的简单使用
- delphi TStringList 用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- delphi TStringList 用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- Delphi CxGrid用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- Delphi IDHTTP用法详解
- Delphi常用关键字用法详解
- Springboot实现Session共享及负载均衡
- ES官方文档整理-4.field data 内存控制
- A*算法
- bootstrap datatimepicker 时间选择插件---精确到时分秒
- Chrome 扩展开发教程(3)——content_scripts用法
- Delphi-VclZip用法详解 (2011-09-28 23:59:18)
- 正则表达式 匹配特殊字符js
- 二叉树遍历C++11实现———前序、中序、后序、层序遍历(非递归)
- [LUOGU1011]车站
- 机器学习系统设计(7)
- 第九周项目3--利用二叉树遍历思想解决问题
- OpenSSL编程-DES编程详解
- 串口读写(python)
- 大数乘法