2

我正在尝试使用JclCompressionJCL Demo 保存(压缩)一个 .zip 文件。当我按下“读写”选项卡上的“保存”按钮时,演示会调用:

procedure TFormMain.ActionSaveExecute(Sender: TObject);
begin
  (FArchive as TJclCompressArchive).Compress;
  CloseArchive;
end;

执行时(FArchive as TJclCompressArchive).Compress;会产生异常:“存档异地更新后无法替换至少一个压缩卷。” 有时当我按下保存按钮时,“应用程序没有响应”出现在表单的标题中,所以我必须关闭演示。

此代码是否正确,还是我必须更改它才能成功压缩并保存 zip 文件?是否有任何其他演示,JclCompression以便我可以学习如何使用这些类?

除了这个问题,演示似乎工作正常。我可以打开一个 zip 文件、创建一个新的 zip 文件、添加文件、从目录中添加文件、提取选定的文件、提取所有文件以及获取 zip 文件属性。储蓄似乎是个问题。

我在 Windows 7 上使用 Delphi 2010。

4

2 回答 2

2

与 jedi-jcl-compression-library-wont-open-spanned-archive-files 相同的问题。 JEDI JCL 压缩库不会打开跨区存档文件

您使用的JCL -JVCL 版本有问题。
我建议将您的 JCL 安装升级到最新的每日构建

于 2011-11-07T17:22:26.717 回答
0

当我要存档的文件被打开写入时,我看到了这个错误消息,所以你需要提前关闭它们或将它们复制到临时文件夹。此外,如果您像我一样使用函数 Create7zArchive(),您需要将 7z.dll 放在您的 bin 输出文件夹中。很遗憾,但似乎 JCL 没有使用已经集成在 Delphi 中的 Zlib.pas。

JCL 2.7.0.5676(稳定版)

于 2015-10-29T08:22:51.993 回答