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的更多相关文章

  1. Windows API方式直接调用C#的DLL,支持多音字转拼音、Gzip解压缩、公式计算(VBA、C++、VB、Delphi甚至java都可以)

    原始链接 https://www.cnblogs.com/Charltsing/p/DllExport.html 这两年,我在VBA应用方面一直有几大痛点:1.多音字转拼音:2.64位下的GZIP解压 ...

  2. 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  3. 如何在 Delphi 中静态链接 SQLite

    搞了我几个小时,终于成功在 Delphi 中静态链接了 SQLite (v3.5.4),下一步就是研究加密了,呵呵中间其实遇到很多问题,今天累了,就不说了,改天补上 下载测试工程 下面说说方法 1.当 ...

  4. Delphi调试CGI或ISAPI 转

      因为dll文件已驻留内存,可用intrabob进行调试,也可用PWS进行调试,不过要换文件. IntraBob是资深程序员Dr.Bob编写的免费工具软件,用于测试Delphi编写 的CGI/Win ...

  5. delphi关于文件操作集锦

        关于文件操作集锦 取得该快捷方式的指向EXE关键词:快捷方式 LNK unit Unit1; interface usesWindows, Messages, SysUtils, Varian ...

  6. delphi 利用HTTP的POST方法做个在线翻译的小工具 good

    最近做了一个英汉小翻译的东东,用的是VC,ADO + Access访问数据库,单词数据库是从金山打字通2002弄来的.后来想了想,想再加个在线翻译的功能,记得经常使用GOOGLE翻译网站的在线翻译,也 ...

  7. 使用zlib来压缩文件-用delphi描述

    今天用到压缩文件的问题,找了一些网上的资料,后来发现了delphi自身所带的zlib单元,根据例子稍微改变了一些,使它能够符合所有的格式. 使用时,需要Zlib.pas和 Zlibconst.pas两 ...

  8. Delphi XE5的Android开发平台搭建[转]

    Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GB Delphi XE5安装光盘中包含了最基本 ...

  9. 用DELPHI 开发压缩、解压、自解压、加密

    引 言:在日常中,我们一定使用过WINZIP.WINRAR这样的出名的压缩软件,就是我们开发软件过程中不免要遇到数据加密.数据压缩的问题!本文中就这一技术问题展开探讨,同时感谢各位网友的技巧,在我每次 ...

随机推荐

  1. CSS如何设置字体的类型、大小、颜色

    设计网页时,一般设置body的字体,让其他标签继承body的字体,这样设置特别方便,但是标题标签h1到h6和表单标签(input类型)是没有继承body的字体属性的,它们的字体需要单独设置. < ...

  2. Django框架(二)

    一:Django项目创建步骤: 方式1:命令创建: 进入指定目录 C:\Users\bing>F: F:\>cd mysite F:\mysite>django-admin star ...

  3. Ubuntu窗口大小调节方法

    Description: 在Vmware Workstation 11上安装了Ubuntu 10.0,画面显示如下所示: Ubuntu系统的屏幕太小.调整方法:调节显示器分辨率即可,下图是将分辨率调节 ...

  4. UIPickerView/UIDatePicker/程序启动的完整过程

    一.UIPickerView 1.UIPickerView的常见属性 数据源(用来告诉UIPickerView有多少列多少行) @property(nonatomic,assign) id<UI ...

  5. 2017年国内已经开设机器人工程专业(080803T)高校名单

    相关资料来源于教育部公布的2014年度和2016年度普通高等院校本科专业备案或审批结果的通知: 2014年批次 http://www.moe.edu.cn/publicfiles/business/h ...

  6. ng 变量和常量服务

    <!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> <met ...

  7. Gradle配置IDEA正常识别JPA Metamodel Generator动态生成的代码

    我们在使用JPA动态查询构建查询条件时,为了实现安全的类型检查,常常需要引用Hibernate JPA Metamodel Generator自动为我们生成静态元模型类. 而这些类由于编译时由Hibe ...

  8. call()方法和apply()方法用法总结

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  9. 【Xamarin】MonoTouch - iOS 使用 UIImagePickerController 打开图片库和相机选择图片修改头像

    Application tried to present modally an active controller <UIImagePickerController: 0x7b6ff400> ...

  10. git身份验证失败清除密码缓存

    git config --system --unset credential.helper