//开源7zip的Delphi接口声明及调用范例 解压到目录:
with CreateInArchive('Formats\zip.dll') do
begin
OpenFile('c:\test.zip');
ExtractTo('c:\test');
end;
获取文件列表:
with CreateInArchive('Formats\7z.dll') do
begin
OpenFile('c:\test.7z');
for i := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
Writeln(ItemPath[i]);
end;
解压到流:
with CreateInArchive('Formats\7z.dll') do
begin
OpenFile('c:\test.7z');
for i := 0 to NumberOfItems - 1 do
if not ItemIsFolder[i] then
ExtractItem(i, stream, false);
end;
解压多项目:
function GetStreamCallBack(sender: Pointer; index: Cardinal;
var outStream: ISequentialOutStream): HRESULT; stdcall;
begin
case index of ...
outStream := T7zStream.Create(aStream, soReference);
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
var
i: integer;
items: array[0..2] of Cardinal;
begin
with CreateInArchive('Formats\7z.dll') do
begin
OpenFile('c:\test.7z');
// items must be sorted by index!
 items[0] := 0;
items[1] := 1;
items[2] := 2;
ExtractItems(@items, Length(items), false, nil, GetStreamCallBack);
end;
end;
打开流:
with CreateInArchive('Formats\zip.dll') do
begin
OpenStream(T7zStream.Create(TFileStream.Create('c:\test.zip', fmOpenRead), soOwned));
OpenStream(aStream, soReference);
...
end;
进度条回调:
function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall;
begin
if total then
Mainform.ProgressBar.Max := value else
Mainform.ProgressBar.Position := value;
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
begin
with CreateInArchive('Formats\zip.dll') do
begin
OpenFile('c:\test.zip');
SetProgressCallback(nil, ProgressCallback);
...
end;
end;
打开含有密码的文件:
function PasswordCallback(sender: Pointer; var password: WideString): HRESULT; stdcall;
begin
// call a dialog box ...
 password := 'password';
Result := S_OK;
end;
procedure TMainForm.ExtractClick(Sender: TObject);
begin
with CreateInArchive('Formats\zip.dll') do
begin
// using callback
SetPasswordCallback(nil, PasswordCallback);
// or setting password directly
SetPassword('password');
OpenFile('c:\test.zip');
...
end;
end;
压缩存档:
procedure TMainForm.ExtractAllClick(Sender: TObject);
var
Arch: I7zOutArchive;
begin
Arch := CreateOutArchive('Formats\7z.dll');
// add a file
Arch.AddFile('c:\test.bin', 'folder\test.bin');
// add files using willcards and recursive search
Arch.AddFiles('c:\test', 'folder', '*.pas;*.dfm', true);
// add a stream
Arch.AddStream(aStream, soReference, faArchive, CurrentFileTime, CurrentFileTime, 'folder\test.bin', false, false);
// compression level
SetCompressionLevel(Arch, 5);
// compression method if <> LZMA
SevenZipSetCompressionMethod(Arch, m7BZip2);
// add a progress bar ...
Arch.SetProgressCallback(...);
// set a password if necessary
Arch.SetPassword('password');
// Save to file
Arch.SaveToFile('c:\test.zip');
// or a stream
Arch.SaveToStream(aStream);
end;
分享到:
相关推荐
Delphi XE10调用支付宝支付接口详细教程,感谢DelphiTeacher开源
瑞萨S7G2 远程监控系统全部资料开源.zip瑞萨S7G2 远程监控系统全部资料开源.zip瑞萨S7G2 远程监控系统全部资料开源.zip瑞萨S7G2 远程监控系统全部资料开源.zip瑞萨S7G2 远程监控系统全部资料开源.zip瑞萨S7G2 远程...
Delphi XE10调用微信接口详细教程,感谢DelphiTeacher开源
开源MPEG4压缩算法-Xvid库调用范例 基本实现了压缩和解压,但是还点问题,需要大家共同来研究,压缩的视频流,在C:\test.mp4,可用附带解码软件查看,这个压缩仅仅是数据,没有mp4的文件头,如果带上文件头就被通用...
恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板硬件开源.zip恩智浦 IoT模块基板...
开源包7zip压缩工具的编译及使用,7zip的实现效果如下: 1、压缩文件或文件夹 2、分卷压缩文件或文件夹 3、解压文件 4、分卷解压文件 5、获取7z压缩包的内容详情
FPGA+CY7C68013A+delphi7逻辑分析仪开源项目全套源码。
基于Arduino智能节水灌溉项目,原理+PCB图+源码等开源.zip基于Arduino智能节水灌溉项目,原理+PCB图+源码等开源.zip基于Arduino智能节水灌溉项目,原理+PCB图+源码等开源.zip基于Arduino智能节水灌溉项目,原理+PCB...
使用开源的LIB USB,用DELPHI直接操作USB,免去自己开发USB驱动的烦恼。这里是DELPHI环境下的例程。使用前要先下载LIB USB
swift开源.zip,swift编程语言
MacOS开源应用集合。.zip,MacOS的开源应用程序列表。
7-zip是一款开源软件,界面简洁,ZIP格式压缩比例高,解压缩快速。值得安装。
车载控制系统-开源.zip
开源的C++压缩库,简单实用,通俗易懂很容易上手。很多项目都在引用,压缩后可以使用各主流压缩软件进行解压。
基于java的开发源码-Solo Java开源博客.zip 基于java的开发源码-Solo Java开源博客.zip 基于java的开发源码-Solo Java开源博客.zip 基于java的开发源码-Solo Java开源博客.zip 基于java的开发源码-Solo Java开源博客...
Delphi反编译的神器,不输DEDE。 已经构建完成,下载解压即用。 IDR (Interactive Delphi Reconstructor) 源码需要 Borland C++ Builder V6.0构建,可参考https://github.com/crypto2011/IDR
OpenShop 开源.zip,OpenShop.io
利用c语言加解压的开源代码,对zip文件进行解压和加压操作