当前位置:编程学习 > Delphi >>

Delphi 解压文件的奇怪错误

如果能够解决,一定加分!!!

 

我用的是Delphi7,使用了VCLZip控件。  

以下是出错代码:

  begin
  With VCLZip1 do
  begin
  ZipName:='文件目录\实验文件.Zip'; //Zip相对路径
  Destdir:='E:\'; //Zip解压路径
  if CheckArchive then //无密码检测压缩包
  begin
  showmessage('指定文件错误。');
  ArchiveStream.Free;
  exit; //压缩包没有密码,不解压直接退出
  end;
  Password:='123456789'; //Zip文件解压密码
  FilesList.Add('*.*');
  DoAll:=true;
  Recurse:=True;
  StorePaths:=true;
  unzip;
  ArchiveStream.Free
  end;
  end;

这段代码出错的地方是:如果我第一次运行我的程序,点击“解压”按钮,文件可以正常解压,一切都很正常。但是如果解压完成后,我再点一次“解压”按钮,也就是要它再解压一次,此时,无论Zip文件是否是我规定的必须有密码且密码正确,都无法解压,而是提示“指定文件错误。”

求各位前辈帮帮忙!在线等!

追问:

我也是这么想的,但是不懂得如何释放?请教释放语句。

 

我觉得也可能是第一次文件解压时候,它会把CheckArchive更改为True,所以第二次无论如何都是错误。

答案:
可能是第一次使用完文件后,文件句柄还被占用,尝试使用完后释放一下文件.

如果动态创建会不会好一点?

 

比如你不用放置VCLZip1控件,但是引用他的单元

 

然后你可以Var VCLZip1:TVCLZip;

然后begin开始创建

VCLZip1:=TVCLZip.Create(Application);

用完之后VCLZip1直接Free释放掉。。。

上一个:Delphi中 case语句的问题
下一个:delphi 7中调用时间控件

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,