Descompactar com ZipMaster

Delphi

Testes

23/08/2017

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

Curtidas 0

Melhor post

Natanael Ferreira

Natanael Ferreira

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;
GOSTEI 1

Mais Respostas

Adriano Pratti

Adriano Pratti

23/08/2017

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!
GOSTEI 0
POSTAR