首页 > 其他分享 >Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了

Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了

时间:2023-05-13 10:56:23浏览次数:29  
标签:zip Temp Delphi System Zip TZipFile Test 压缩

单元内主要就是 TZipFile 类, 最方便使用的是它的类方法:



TZipFile.ExtractZipFile()       //解压 Zip 文件到指定文件夹
TZipFile.IsValid()              //判断指定文件是否是有效的 Zip 文件
TZipFile.ZipDirectoryContents() //压缩指定路径下的所有文件


测试:

uses System.Zip;

{ 把 C:\Temp\TestDir 下的所有文件压缩到 C:\Temp\Test.zip }
procedure TForm1.Button1Click(Sender: TObject);
begin
  TZipFile.ZipDirectoryContents('C:\Temp\Test.zip', 'C:\Temp\TestDir\'); //参数3可以指定压缩算法
end;

{ 把 C:\Temp\Test.zip 解压到 C:\Temp\TestDir2\ }
procedure TForm1.Button2Click(Sender: TObject);
begin
  TZipFile.ExtractZipFile('C:\Temp\Test.zip', 'C:\Temp\TestDir2\');
end;


使用实例化类的方式:

uses System.Zip;

{ 压缩 }
procedure TForm1.Button1Click(Sender: TObject);
var
  zip: TZipFile;
begin
  zip := TZipFile.Create;
  zip.Open('C:\Temp\001.zip', TZipMode.zmWrite); //准备要压缩为 001.zip
  zip.Add('C:\Temp\Test.txt', 'Test.txt');       //参1是要压缩的文件; 参2是要使用的文件名; 参数3可指定压缩算法
//  zip.Add...
//  zip.Close; //Close 时才执行实际压缩过程; 不过在销毁前会调用它
  zip.Free;
end;

{ 解压 }
procedure TForm1.Button2Click(Sender: TObject);
var
  zip: TZipFile;
begin
  zip := TZipFile.Create;
  zip.Open('C:\Temp\001.zip', TZipMode.zmRead);
  zip.ExtractAll('C:\Temp\002\');
  zip.Free;
end;

标签:zip,Temp,Delphi,System,Zip,TZipFile,Test,压缩
From: https://www.cnblogs.com/lucken2000/p/17396919.html

相关文章

  • 关于 Delphi 中流的使用 压缩与解压缩的函数
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Button1:TButton;  Button2:TButton;  procedureButton1Click(Sender:TObject); ......
  • 关于 Delphi 中流的使用 分割与合并文件的函数
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Button1:TButton;  Button2:TButton;  procedureButton1Click(Sender:TObject); ......
  • 关于 Delphi 中流的使用 用流读写结构化文件
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Memo1:TMemo;  {添加Memo显示内容}  Button1:TButton;  Button2:TButton; ......
  • 关于 Delphi 中流的使用 用 TMemoryStream(内存流) 入门
    所谓"流",就是一段数据或是一块内存;在进行流操作时,我们不必关心流中的数据到底是什么;只需要知道流的大小和当前的指针位置.所以流只有两个属性:Size、Position.对流的操作,不过就是读取和写入.所以流最主要的方法就是Read和Write.在很多控件的使用中,读取主要用Load......
  • 关于 Delphi 中流的使用 遍历读取流中的所有数据
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Memo1:TMemo;  Memo2:TMemo;{需要添加两个Memo用于显示}  Button1:TButton;  ......
  • delphi StyleControl中DB控件的使用说明
    这两天听大佬说"可视化绑定"的效率很低,再加对下拉菜单,单选,复选框等控件绑定操作的未知,于是我决定把普通组件,改为DB组件. 正常来讲,基本上所有DB组件只要设置好了数据源和字段绑定,就能显示数据来, 但是我这边就出现了一点意外,源于对sqlite数据库认知度不够的原因......
  • Delphi 字符串拆分/分割[1] - TStringList
    1、TStringList默认以','拆分字符onstconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMessage(Strs[i]);//aaabbbcccd......
  • unmount a filesystem from ESXi
    esxclistoragefilesystemlist esxclistoragefilesystemunmount[-u UUID |-l label |-p path ] esxclistoragefilesystemunmount-p/vmfs/volumes/4e414917-a8d75514-6bae-0019b9f1ecf4 来源:https://kb.vmware.com/s/article/2004605......
  • delphi模板引擎
    programExample;usesSempare.Template;typeTInformation=recordname:string;favourite_sport:string;count:integer;end;beginvartpl:=Template.Parse('Mynameis<%name%>.'#13#10+'Myfavouritesportis<%......
  • Delphi中使用ADO连接Excel
    第一部分: 1.设置ADOConnection的ConnectionString属性的OLEDB的提供者要选择MicrosoftJet4.0OLEDBProvider(这本来是用于连接Access数据库的驱动程序,但也可打开Excel文件),按"下一步"按钮2.选择数据库名称。注意:Excel的扩展名是*.xls,而默认文件类型是MicrosoftAcce......