【问题标题】:How to compress a Folder uses lzma sdk?如何使用 lzma sdk 压缩文件夹?
【发布时间】:2012-04-21 15:19:09
【问题描述】:

http://www.7-zip.org/sdk.html
我可以用它来压缩文件,但是找不到压缩文件夹的功能

【问题讨论】:

  • Delphi 的哪个版本?你会考虑在 XE 中添加的 ZIP 吗?
  • 7z压缩比大于ZIP和rar

标签: c++ delphi 7zip lzma


【解决方案1】:

您必须创建一个.7z 存档,然后在其中包含该文件夹的所有文件。没有直接的“文件夹”压缩:只是压缩文件。如果您在文件名中存储(相对)文件夹名称(例如“FolderName\FileName”),则文件夹“FolderName”将出现在存档中。

您在 SDK 中有一个 ANSI-C 兼容的源代码,用于 7z 解压缩示例。 您必须对其进行调整以将文件夹的所有文件添加到存档中(使用FindFirst / FindNext / FindClose,如果您希望包含子文件夹,则使用递归)。

编辑:其实sdk里面没有.7z的写法。仅从 sdk 中的 .7z 存档打开/提取。您必须手动对其进行编码...所以Using 7-Zip from Delphi? 的答案可能会对您有所帮助。

【讨论】:

  • 7 zip 没有存档/目录功能吗?
  • lzma sdk 没有存档/目录功能
  • @DavidHeffernan 在 SDK 中,您有两个级别: 1. lzma 压缩(超过流或缓冲区); 2. .7z 存档格式。 .7z 存档格式确实处理存档/目录功能。
猜你喜欢
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
相关资源
最近更新 更多