Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 使用JclCompression压缩文件_Delphi_Compression_Delphi 2010_Jedi Code Library - Fatal编程技术网

Delphi 使用JclCompression压缩文件

Delphi 使用JclCompression压缩文件,delphi,compression,delphi-2010,jedi-code-library,Delphi,Compression,Delphi 2010,Jedi Code Library,我正试图用JCL演示使用JclCompression保存(压缩)一个.zip文件。当我按下读写选项卡上的保存按钮时,演示调用: procedure TFormMain.ActionSaveExecute(Sender: TObject); begin (FArchive as TJclCompressArchive).Compress; CloseArchive; end; 当(FArchive作为TJclCompressArchive)。压缩时,它会产生一个异常:“在存档不到位更新后

我正试图用JCL演示使用
JclCompression
保存(压缩)一个.zip文件。当我按下读写选项卡上的保存按钮时,演示调用:

procedure TFormMain.ActionSaveExecute(Sender: TObject);
begin
  (FArchive as TJclCompressArchive).Compress;
  CloseArchive;
end;
(FArchive作为TJclCompressArchive)。压缩时,它会产生一个异常:“在存档不到位更新后,至少有一个压缩卷无法被替换。”此外,有时当我按下“保存”按钮时,“应用程序没有响应”会出现在表单的标题中,因此我必须关闭演示

这段代码正确吗?还是我必须将其更改为成功压缩并保存zip文件?有没有其他的
JclCompression
演示,让我学习如何使用这些类

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


我在Windows 7上使用Delphi 2010。

与绝地jcl压缩库无法打开跨归档文件的问题相同。

您使用的JCL-JVCL版本是有bug的

我建议您将JCL安装升级到

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


JCL 2.7.0.5676(稳定)

当提到绝地JCL的问题时,请引用您使用的JCL的确切版本。我使用的是Delphi 2007,Windows 7 x86。