Descompactar com ZipMaster

23/08/2017

0

Boa tarde Amigos, Estou fazendo testes no ZipMaster e até onde eu teste a parte de compactar está show de bola, porém quando vou extrair usando ele os aquivos ficam tudo na mesma pasta, não respeita as subpastas compactadas no arquivo gerado por ele, sendo que por outro aplicativo tipo 7z ou Winrar o arquivo zip mesmo sendo gerado pelo ZipMaster são descompactados e com suas respectivas subpastas.

Alguém tem a solução de descompactar usando o ZipMaster do jeito certo com as subpastas contidas no arquivo ZIP ?

Agradeço desde já amigos.
Adriano Pratti

Adriano Pratti

Responder

Post mais votado

23/08/2017

As novas versões do Delphi (creio que apartir do XE2) dá suporte a biblioteca Zip nativa (sem componentes).

Declare [b]System.Zip[/b] ou apenas [b]Zip[/b] na uses do form.

[b]Compactar[/b]

function Zip(Files: TStrings; ZipName: String): boolean; // Compacta
os arquivos
var
  I: integer;
  Zipper: TZipFile;
begin
  Zipper := TZipFile.Create();
  try
    Zipper.Open(ZipName, zmWrite);
    for I := 0 to Files.Count - 1 do
    begin
      if FileExists(Files[I]) then
        Zipper.Add(Files[I]);
    end;
    Zipper.Close;
  finally
    FreeAndNil(Zipper);
  end;
  Result := True;
end;


[b]Descompactar[/b]

function UnZip(ZipName: string; Destination: string): boolean; // Descompacta
no Diretorio informado
var
  UnZipper: TZipFile;
begin
  UnZipper := TZipFile.Create();
  try
    UnZipper.Open(ZipName, zmRead);
    UnZipper.ExtractAll(Destination);
    UnZipper.Close;
  finally
    FreeAndNil(UnZipper);
  end;
  Result := True;
end;

Natanael Ferreira

Natanael Ferreira
Responder

Mais Posts

23/08/2017

Adriano Pratti

Valeu Natanael Ferreira, mas eu estou usando ainda o Delphi 7 ... tenho muitos projetos informais em uso com ele e também o Delphi 3 ... mas o meu foco é tentar solucionar essa questão no 7 mesmo, te agradeço pela atenção amigo. Mesmo assim vou guardar a escrita que me passou para uso no futuro. Grato Natanael Ferreira!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar