文档章节

ZIPTV压缩 控件包 使用方法

vga
 vga
发布于 2017/09/08 06:30
字数 352
阅读 15
收藏 0
用 ZIPTV 控件包实现
用到其中的 TZip 和 TUnZip 控件
函数:
function DeCompressFile(sourceFile, targetPath: string): Boolean;
var
  FilesExtracted: Integer;
begin
  result := False;
  UnZIP1.ArchiveFile := sourceFile; // archive filename
  //   UnZIP1.Passwords.Add('123');
  UnZIP1.ConfirmOverwrites := false; // default = False
  UnZIP1.RecurseDirs := true; // default = False
  UnZIP1.FileSpec.Clear(); //
  UnZIP1.FileSpec.Add('*.*'); // *.* = extract all
  UnZIP1.ExtractDir := targetPath; //
  FilesExtracted := UnZIP1.Extract();
  if FilesExtracted = 0 then
    result := false
  else
    result := true;
end;

function CompressFile(sourcePath, targetFName: string): Boolean;
var
  FilesCompressed: Integer;
begin
  result := False;
  if FileExists(targetFName) then
    EraseFile(targetFName, doAllowUndo); // EraseFile is in ztvBase.pas
  Zip1.ArchiveFile := targetFName; // archive filename
  Zip1.DateAttribute := daFileDate; // default value
  Zip1.StoredDirNames := sdRelative; // default value
  Zip1.CompressMethod := cmDeflate; // default value
  Zip1.RecurseDirs := true; // default = False
  Zip1.Switch := swAdd; // default value
  Zip1.StoreEmptySubDirs := False; // default value
  Zip1.EncryptHeaders := false; // default = False
  Zip1.ExcludeSpec.Clear();
  Zip1.FileSpec.Clear();
  Zip1.FileSpec.Add(sourcePath + '*.*');
    // test with c:\windows\*.txt
  // ****************************************************************
  // NOTE: for a better understanding of how the Attributes property
  // works with file attributes see demo demos\filescan\fs_demo.dpr.
  // ****************************************************************
  // See the Attributes property in the object inspector
  // Set Zip1 Attributes property by calling the SetAttribute method
  Zip1.SetAttribute(fsZeroAttr, True); // default
  Zip1.SetAttribute(fsArchive, True); // default
  Zip1.SetAttribute(fsDirectory, True); // default = False
  Zip1.SetAttribute(fsHidden, True); // default = False
  Zip1.SetAttribute(fsReadOnly, True); // default
  Zip1.SetAttribute(fsSysFile, True); // default = False
  // See the AttributesEx property in teh object inspector
  // Set the AttributesEx property by calling the SetAttributeEx method.
  // Exclude none
  Zip1.SetAttributeEx(fsZeroAttr, False); // default
  Zip1.SetAttributeEx(fsArchive, False); // default
  Zip1.SetAttributeEx(fsDirectory, False); // default
  Zip1.SetAttributeEx(fsHidden, False); // default
  Zip1.SetAttributeEx(fsReadOnly, False); // default
  Zip1.SetAttributeEx(fsSysFile, False); // default
  //   UnZIP1.Password:='huaruan';
  FilesCompressed := Zip1.Compress();
  //   ShowMessage( 'Files Compressed: ' + IntToStr( FilesCompressed ) );
  result := true;
end;
调用例子:
   if not CompressFile( 'c:\temp\', 'c:\test.zip') then
     begin
       showmessage('压缩文件失败,请检查路径正确性!');
       exit;
     end;
//-------------------------------------
    if not deCompressFile('c:\test.zip', 'c:\temp\') then
    begin
      showmessage('解压压缩文件失败,请检查是否为该系统的压缩文件!');
      exit;
    end;

本文转载自:http://www.cnblogs.com/linyawen/archive/2011/04/20/2022449.html

共有 人打赏支持
vga

vga

粉丝 21
博文 357
码字总数 24097
作品 0
佳木斯
加载中

评论(1)

vga
vga
zip tv 能下载到的源码版本 V6.8.4 可支持 delphi 2007, 经过修改,可支持 Delphi xe2 等
群组转换器--Favorite2Group

群组转换器(For GB,程序源代码已在Google发布) 本软件主要是辅助GreenBrowser的一个小工具,其功能目前有4个比较完善: IE收藏夹转换为GB群组(文件夹转换为cgp文件) GB群组转换为IE收藏...

糯米糊糊
2011/06/12
435
0
Android显示GIF动画--GifView

GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片 使用方法: 1-把GifView.jar加入你的项目。 2-在...

ant.cy.liao
2011/12/12
67.6K
11
cab文件打包的ActiveX控件(转)

程序环境:Windows Xp SP2, IE 6, Tomcat 6.0, VC++6.0 利用MFC开发的ActiveX控件要正常运行必须依赖MFC库。但是你不能保证你用户的机器上装有与你开发环境相同的库,所以,当你发行一个Act...

amath0312
2012/01/03
0
0
TbsZip 2.15 发布,PHP 的压缩包处理类

TbsZip 2.15 支持带注释的压缩包;清理了错误消息。 TbsZip 是一个 PHP 的类用来读写 Zip 压缩文件包,该类无需 PHP 扩展或者是临时文件。TbsZip 可以对压缩文档中的文件进行读、写、修改和删...

oschina
2013/10/17
417
2
iOS开发-用ZipArchive添加和解压zip包

ZipArchive是一个开源的zip开发包工具。 使用方法如下: 创建/添加一个zip包 ZipArchive* zipFile = [[ZipArchive alloc] init]; //次数得zipfilename需要一个完整得路径,例如***/Documents...

TomatosX
2015/09/04
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
27分钟前
0
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
1
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "ens33: "|awk '/inet/ {pr...

芬野de博客
昨天
2
0
MySQL autocommit探究

-- sessionA:tx_isolation=REPEATABLE-READmysql> select connection_id();+-----------------+| connection_id() |+-----------------+| 28 |+-----------------+......

安小乐
昨天
7
0
c++多线程锁 Mutex  自动判断死锁

c++多线程锁可以使用absl::Mutex std::mutex这两种,下面是demo代码。 使用absl:Mutex的时候打印: [mutex.cc : 1338] RAW: Cycle: [mutex.cc : 1352] RAW: mutex@0x683b68 stack: @ 0x43856......

青黑
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部