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

Delphi 解压文件

大家好啊!我是Delphi超级菜鸟,很多东西还不熟悉啊~~~见谅见谅!

 

如果得到好答案,我会加分的!保证!


我所用的是 Delphi 7,并使用了VCLZip组件。


以下是我想要提问的源代码:

procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
  With VCLZip1 do
  begin
  ZipName := '文件目录\实验文件.zip'; //ZIP文件名
  Destdir:='Temp\'; //解压到的目录
  FilesList.Add('*.*');
  DoAll := true;
  Password:='abcdefg'; //密码
  Recurse := True;
  StorePaths := true;
  unzip;
  end;
end;

这段代码已经成功运行了。
但是现在有个问题,我发现如果目录下的Zip文件,即使是没有密码也会解压。

我想请教一下:如何才能做到有密码且正确的解压,没有密码的不解压,最好是还能提示错误。


各位高手帮帮我吧~~~

追问:

呵呵~好像有点意思!

 

不过我是菜鸟来着,能不能麻烦您在每行代码后面附注一下,有些属性我看不懂啊。希望不吝赐教。

 

我先加点分给你。

答案:很简单吧,先不带密码尝试解压一次或者获取信息一次,如果失败了就说明有密码咯。
代码:
procedure TForm1.btn1Click(Sender: TObject);
begin
UnZip1.OnBadPassword:=UnZip1BadPassword;
UnZip1.ArchiveStream:=TFileStream.Create('F:\古书.zip',fmOpenRead);
if UnZip1.CheckArchive then
 begin
   showmessage('No Pass');
   UnZip1.ArchiveStream.Free;
   exit;
   //无密码,不解压
 end;
//解压过程,略。
UnZip1.ArchiveStream.Free;
end;

procedure TForm1.UnZip1BadPassword(Sender: TObject; FileIndex: Integer;
  var NewPassword: String);
begin
NewPassword:='123456'; //123456是真实的密码,这一步可以省
end;

上一个:Delphi简介
下一个:Delphi 中如何安装组件?

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