delphi vclzip解压到流
读一个jar包,解压其中的指定文件,代码如下:
name := extractfilename(TOpenDialog1.FileName);
path := extractfiledir(TOpenDialog1.FileName);
vclnzp1.ZipName:=path+'\'+name;
vclnzp1.ReadZip;
vclnzp1.DoAll := True;
vclnzp1.OverwriteMode := Always;
vclnzp1.RetainAttributes := True;
vclnzp1.ReplaceReadOnly := True;
vclnzp1.RecreateDirs:=True;//创建目录
Astream:=TMemoryStream.Create;
if(vclnzp1.UnZipToStream(AStream,'pdp\plugin_info.xml')=0) then
begin
INFO_Warning('您所选择的不是标准插件JAR包,请重新选择');
Exit;
end
else
begin
try
AStream.Position := 0;
MsgUpdate_Memo.Lines.LoadFromStream(AStream);
finally
Astream.Free;
end;
jar包格式为a.jar\pdp\plugin_info.xml和a.jar\pdp\rebate\若干文件夹和文件,目前问题是:如果只有a.jar\pdp\plugin_info.xml,没问题;如果2者并存(文件和文件夹都存在),读到的流里就有很多垃圾数据,请问大牛们该如何处理