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这样的出名的压缩软件,就是我们开发软件过程中不免要遇到数据加密.数据压缩的问题!本文中就这一技术问题展开探讨,同时感谢各位网友的技巧,在我每次 ...
随机推荐
- MVC框架中的值提供机制(一)
在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据 ...
- Android 拍照或从相册取图片并裁剪
在Android中,Intent触发Camera程序,拍好照片后,将会返回数据,但是考虑到内存问题,Camera不会将全尺寸的图像返回给调用的Activity,一般情况下,有可能返回的是缩略图,比如1 ...
- 通过设置debug_options调试squid
debug_options用于设置输出到access.log中的调试信息的模块和级别,默认为ALL,1. ALL指所有模块,每个源文件被赋予一个唯一的模块号 1指级别,完全调试的级别为9.很显然,设置 ...
- 剑指Offer-第一章面试细节总结
面试细节:行为面试(20%)+技术面试(70%)+应聘者提问(10%) * 行为面试:跳槽者(不要抱怨老板,不要抱怨同事,只为追寻自己的理想而站斗) * 技术面试:1.基础知识点(编程语言,数据结构( ...
- SQL Server: Top 10 Secrets of a SQL Server Expert
转载自:http://technet.microsoft.com/en-us/magazine/gg299551.aspx Many companies have downsized their IT ...
- 理解javascript中的with关键字
说起js中的with关键字,很多小伙伴们的第一印象可能就是with关键字的作用在于改变作用域,然后最关键的一点是不推荐使用with关键字.听到不推荐with关键字后,我们很多人都会忽略掉with关键字 ...
- envoy 测试试用
备注: 为了简单测试使用的是docker 镜像进行的测试 1. Dockerfile FROM lyft/envoy:latest RUN apt-get update COPY envoy ...
- C# 实现程序只启动一次(多次运行激活第一个实例,使其获得焦点,并在最前端显示)
防止程序运行多个实例的方法有多种,如:通过使用互斥量和进程名等.而我想要实现的是:在程序运行多个实例时激活的是第一个实例,使其获得焦点,并在前端显示. 主要用到两个API 函数: ShowWindow ...
- php 日期时间运算比较
$sql= "select * from t_datestudy where id='4750' and agreemode='2' and school_agree !='1'" ...
- zabbix 触发器 | count 函数
摘要:确认多次zabbix监控中小编用的最多的是count的这函数,确认多次以减少了很多误告警,提高了运维效率.可以设置连续几次都异常才发出告警,这样一来,只要发出告警基本上就已经确定发生故障了.co ...