在 Delphi 中创建 7zip 存档
Create an 7zip archive in Delphi
我将这个 7zip 包装器用于 Delphi 7,效果很好
https://github.com/zedalaye/d7zip
它创建存档但覆盖里面已有的文件
var
Arch: I7zOutArchive;
begin
Arch := CreateOutArchive(CLSID_CFormat7z);
SetCompressionLevel(Arch, 2);
Arch.AddFile('C:\Test.bin', 'Test.bin');
Arch.SaveToFile('C:\Test.zip');
end;
它会删除保存在 'Test.zip' 中的所有其他文件
无论如何我可以将文件保存在 'Test.zip' 中并使用此包装器在 Delphi 7
中写入新文件
您正在使用的包装器不允许您更新 现有存档,只能创建 新存档。因此,要 添加 文件到现有存档,您必须执行以下操作:
- 使用
CreateInArchive()
打开现有存档
- 使用
CreateOutArchive()
创建一个新的临时存档
- 从输入存档复制 个文件到输出存档
- 将 个文件添加到输出存档
- 关闭两个存档
- 用新存档替换旧存档
我将这个 7zip 包装器用于 Delphi 7,效果很好
https://github.com/zedalaye/d7zip
它创建存档但覆盖里面已有的文件
var
Arch: I7zOutArchive;
begin
Arch := CreateOutArchive(CLSID_CFormat7z);
SetCompressionLevel(Arch, 2);
Arch.AddFile('C:\Test.bin', 'Test.bin');
Arch.SaveToFile('C:\Test.zip');
end;
它会删除保存在 'Test.zip' 中的所有其他文件 无论如何我可以将文件保存在 'Test.zip' 中并使用此包装器在 Delphi 7
中写入新文件您正在使用的包装器不允许您更新 现有存档,只能创建 新存档。因此,要 添加 文件到现有存档,您必须执行以下操作:
- 使用
CreateInArchive()
打开现有存档 - 使用
CreateOutArchive()
创建一个新的临时存档 - 从输入存档复制 个文件到输出存档
- 将 个文件添加到输出存档
- 关闭两个存档
- 用新存档替换旧存档