使用JclCompression压缩文件

时间:2011-11-07 14:33:20

标签: delphi compression delphi-2010 jedi-code-library

我正在尝试使用JclCompression使用JCL 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。

2 个答案:

答案 0 :(得分:2)

与jedi-jcl-compression-library-wont-open-spanned-archive-files相同的问题。 JEDI JCL Compression library wont open spanned archive files

您使用的JCL-JVCL版本是错误 我建议将JCL安装升级到latest daily build

答案 1 :(得分:0)

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

JCL 2.7.0.5676(稳定)