Delphi 解压缩 ZipForge
ZipForge
http://www.componentace.com/zip_component_zip_delphi_zipforge.htm
downLoad
http://www.componentace.com/download/download.php?editionid=12
Example
http://www.componentace.com/zip-delphi.htm
c++builder、Delphi 压缩文件
ZipForge is a fast and powerful VCL Zip component, written in Delphi.
It lets you easily create ZIP archives, extract files from zip files to
hard drive or memory, add files to a zip archive from disk or memory,
replace, move and delete files in zip archives. Also it creates and
reads self-extracting (SFX) zip archives, AES encrypted and
multi-volume zip files.
ZipForge main features:
- Opens and creates archives encrypted with strong AES encryption algorithm
- Zip64 supports - lets you create ZIP files over 4 GB
- Unicode file names support
- Includes transaction system which allows you to rollback changes if archive update failed
- Adds compressed data directly from streams and extracts archived files to streams without creating temp files
- Lets you store full path with drive for each file
- Allows to search for files inside archive by mask
- Progress indication
- Full Delphi source code is available
zf: TZipForge;
zf := TZipForge.Create(nil);
zf.OpenArchive(aInStream, False);
zf.ExtractToStream(FileName, StreamOut);
setup Path
D:\Program Files (x86)\ComponentAce\ZipForge
压缩文件
void __fastcall TForm4::Button1Click( TObject * Sender )
{
TMemoryStream * ms = new TMemoryStream( );
Memo1->Text="Hello Word!";
Memo1->Lines->SaveToStream( ms );
ZipForge1->FileName = "a.zip";//压缩包的名称
ZipForge1->OpenArchive( );
ZipForge1->AddFromStream( "a.txt", ms, true );//压缩包里的文件
//ZipForge1->AddFromString("b.txt","text2",)
ZipForge1->CloseArchive( );
delete ms; }
解压缩
void __fastcall TForm4::Button2Click( TObject * Sender )
{
TMemoryStream * ms = new TMemoryStream( );
ZipForge1->FileName = "a.zip";//压缩包名称
ZipForge1->OpenArchive( );
ZipForge1->ExtractToStream( "a.txt", ms );//压缩包里的文件
ms->Position = ;
Memo1->Lines->LoadFromStream( ms ); // To String
// String StrOut;
// ZipForge1->ExtractToString( "a.txt", StrOut );
ZipForge1->CloseArchive( );
delete ms;
}
解压缩到字符串
void __fastcall TForm4::Button2Click( TObject * Sender )
{
ZipForge1->FileName = "a.zip";
ZipForge1->OpenArchive( );
// To String
String StrOut;
ZipForge1->ExtractToString( "a.txt", StrOut );
Memo1->Text = StrOut;
ZipForge1->CloseArchive( );
}
查找压缩包文件列表,找到文件名称,然后
ZipForge1->ExtractToStream(文件名,stream);
Use FindFirst and FindNext methods of TZipForgefor searching files within the archive file.
获得压缩包中的文件列表
TZFArchiveItem afItem;
bool aFound = ZipForge1->FindFirst( "*.*", afItem, faAnyFile, "" );
while ( aFound )
{
this->mmoFileList->Lines->Add( afItem.FileName );
aFound = ZipForge1->FindNext( afItem );
}
压缩包文件详情
this->mmoFileList->Lines->Add( afItem.FileName );
this->mmoFileList->Lines->Add( ">>>>" );
this->mmoFileList->Lines->Add( afItem.StoredPath );
this->mmoFileList->Lines->Add( afItem.CompressedSize );//压缩后文件大小
this->mmoFileList->Lines->Add( afItem.UncompressedSize );//压缩前文件大小
this->mmoFileList->Lines->Add( afItem.CompressionRate );
this->mmoFileList->Lines->Add((int) afItem.Encrypted );
this->mmoFileList->Lines->Add( afItem.LastModFileDate );
this->mmoFileList->Lines->Add( afItem.LastModFileTime );
this->mmoFileList->Lines->Add( afItem.CRC );
this->mmoFileList->Lines->Add( afItem.ExternalFileAttributes );
this->mmoFileList->Lines->Add( afItem.Comment );
从流中解压
TMemoryStream * ms;
ms = new TMemoryStream( );
ms->LoadFromFile( "a.zip" );
ZipForge1->OpenArchive( ms, false );
.Net c#
ICSharpCode.SharpZipLib.dll
ZipOutputStream
http://icsharpcode.github.io/SharpZipLib/
Delphi 解压缩 ZipForge的更多相关文章
- Windows API方式直接调用C#的DLL,支持多音字转拼音、Gzip解压缩、公式计算(VBA、C++、VB、Delphi甚至java都可以)
原始链接 https://www.cnblogs.com/Charltsing/p/DllExport.html 这两年,我在VBA应用方面一直有几大痛点:1.多音字转拼音:2.64位下的GZIP解压 ...
- 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- 如何在 Delphi 中静态链接 SQLite
搞了我几个小时,终于成功在 Delphi 中静态链接了 SQLite (v3.5.4),下一步就是研究加密了,呵呵中间其实遇到很多问题,今天累了,就不说了,改天补上 下载测试工程 下面说说方法 1.当 ...
- Delphi调试CGI或ISAPI 转
因为dll文件已驻留内存,可用intrabob进行调试,也可用PWS进行调试,不过要换文件. IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/Win ...
- delphi关于文件操作集锦
关于文件操作集锦 取得该快捷方式的指向EXE关键词:快捷方式 LNK unit Unit1; interface usesWindows, Messages, SysUtils, Varian ...
- delphi 利用HTTP的POST方法做个在线翻译的小工具 good
最近做了一个英汉小翻译的东东,用的是VC,ADO + Access访问数据库,单词数据库是从金山打字通2002弄来的.后来想了想,想再加个在线翻译的功能,记得经常使用GOOGLE翻译网站的在线翻译,也 ...
- 使用zlib来压缩文件-用delphi描述
今天用到压缩文件的问题,找了一些网上的资料,后来发现了delphi自身所带的zlib单元,根据例子稍微改变了一些,使它能够符合所有的格式. 使用时,需要Zlib.pas和 Zlibconst.pas两 ...
- Delphi XE5的Android开发平台搭建[转]
Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GB Delphi XE5安装光盘中包含了最基本 ...
- 用DELPHI 开发压缩、解压、自解压、加密
引 言:在日常中,我们一定使用过WINZIP.WINRAR这样的出名的压缩软件,就是我们开发软件过程中不免要遇到数据加密.数据压缩的问题!本文中就这一技术问题展开探讨,同时感谢各位网友的技巧,在我每次 ...
随机推荐
- react style: 二级菜单
1.样式 @import "../../styles/varibles"; .app-sidebar { overflow: hidden; width: 180px; > ...
- java-正则表达式判断手机号
要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段, 故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134.135.136.137.138.139 ...
- static才是对代码的提升
static才是对代码的提升 static的作用有如下三条: 1):隐藏. 当编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性. 一个是a.c,另一个是main.c. 下面是a ...
- 圆方树总结 [uoj30]Tourists
圆方树总结 所谓圆方树就是把一张图变成一棵树. 怎么变啊qaq 这里盗一张图 简单来说就是给每一个点双新建一个点,然后连向这个点双中的每一个点.特殊的,把两个点互相连通的也视作一个点双. 我们把原来就 ...
- 洛谷 P1227 [JSOI2008]完美的对称
传送门 题目大意:求一些点集的公共对称中心 题解:对称中心是可以确定的,再判断. 代码: #include<iostream> #include<cstdio> #includ ...
- C语言 产生随机数
rand()函数 #include <stdlib.h> int rand(void); rand()是根据某个种子,以特定的算法,计算出一系列数的函数.返回的数在0和RAND_MAX之间 ...
- Python 函数 -slice()
功能: slice() 函数实现切片对象,主要用在切片操作函数里的参数传递.返回一个切片对象. 语法: class slice(stop) class slice(start, stop[, step ...
- new Date(2016,3,29,10) 时区的问题
http://my.oschina.net/xinxingegeya/blog/394821http://www.cnblogs.com/qiuyi21/archive/2008/03/04/1089 ...
- idea操作
archetypeCatalog internal 1字体: 2编码 http://blog.csdn.net/frankcheng5143/article/details/50779149 3部署 ...
- Java知识点汇总
Java中泛型的本质 Java中静态变量的适用场景 Java类加载原理及类加载器 Java中对Clone的理解 Java中HashMap的实现 Java中Collection和Collections的 ...