我试图保存(压缩)一个.zip文件使用JclCompression
与JCL演示。当我按下Read and Write Tab上的Save按钮时,演示调用:
procedure TFormMain.ActionSaveExecute(Sender: TObject);
begin
(FArchive as TJclCompressArchive).Compress;
CloseArchive;
end;
当执行(FArchive as TJclCompressArchive).Compress;
时,它会产生一个异常:"在存档不在位置更新后,至少有一个压缩卷无法被替换。"有时当我按下保存按钮时,"应用程序没有响应"出现在表单的标题中,所以我不得不关闭演示。
这个代码是正确的,还是我必须改变它以成功压缩并保存zip文件?是否有其他JclCompression
的演示,以便我可以学习如何使用这些类?
除了这个问题,演示似乎工作正常。我可以打开一个zip文件,创建一个新的zip文件,添加文件,从目录中添加文件,解压缩选中的文件,解压缩所有文件,并获得zip文件属性。存钱似乎是个问题。
与jedi-jcl-compression-library- not -open-span -archive-files问题相同。JEDI JCL压缩库不能打开跨归档文件
您使用的JCL-JVCL版本有bug 。
我建议将JCL安装升级到最新的每日构建
当我想要存档的文件被打开进行写入时,我看到了这个错误消息,所以你需要提前关闭它们或将它们复制到临时文件夹。另外,如果您使用函数Create7zArchive(),因为我需要7z.dll放在您的bin输出文件夹中。很遗憾,JCL似乎不使用Zlib。
JCL 2.7.0.5676 (Stable)