Página 1 de 3

Dúvida HB_Unzipfile()

Enviado: 30 Nov 2017 18:38
por Softwhouse
Tenho uma rotina de backup que grava a pasta e as subpastas com seus arquivos. Na rotina de recuperação, com HB_Unzipfile, só recupera se a subpasta existir, se por acaso alguma pasta tenha sido excluída não será recriada, só recupera os arquivos nas pastas existentes. Está correto isso ou existe algum parâmetro que desconheço para que isso funcione? Obrigado.

Dúvida HB_Unzipfile()

Enviado: 30 Nov 2017 20:26
por Itamar M. Lins Jr.
Ola!
Cadê a sintaxe dela ? Como vc está usando ?

Saudações,
Itamar M. Lins Jr.

Dúvida HB_Unzipfile()

Enviado: 30 Nov 2017 20:31
por Itamar M. Lins Jr.
Ola!
Procure na fonte.
A fonte é esta aqui:
https://harbour.github.io/doc/hbziparc. ... _unzipfile
Nos docs oficiais do Harbour.

Código: Selecionar todos

lWithPath Toggle to create directory if needed
Espero que funcione.

Saudações,
Itamar M. Lins Jr.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 10:43
por Softwhouse
Olá,

Estou usando assim:

If Hb_UnzipFile('cArquivo.zip', ,.T., ,'C:\', aExtract')

Tentei outras maneiras conforme o manual e não funcionou.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 10:57
por Kapiaba
Olá, veja se ajuda, fontes e executável anexos. Abs.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 11:00
por Kapiaba
Imagem:
pbackup.png
Abs.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 11:03
por gilbertosilverio
Ola,

Se ver teu código completo fica difícil, mais você esta usando isto:

aExtract := hb_GetFilesInZip( cZip )


Acho que e aqui que ele pega as pastas do arquivo zipado...

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 11:37
por Softwhouse
Kapiaba,

Testei seu demo tentando descompactar o zip gerado pelo meu sistema, não foram geradas nehuma pasta, descompactou os arquivos em C:\

Gilberto

Essa linha existe sim no sistema.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 11:50
por Kapiaba
Fernando, veja onde está escrito:

"Carpeta(Pasta) destino para restaurar la cópia" - Troque(cambie) para onde deseja fazer a restauração. Abs.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 13:54
por Itamar M. Lins Jr.
Ola!
If Hb_UnzipFile('cArquivo.zip', ,.T., ,'C:\', aExtract')

Tentei outras maneiras conforme o manual e não funcionou.
Muito importante informar. Qual é a versão do seu Harbour ?
Monta um exemplo enxuto. Precisamos mandar esse bug para o grupo de desenvolvedores.

Saudações,
Itamar M. Lins Jr.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 14:00
por Itamar M. Lins Jr.
Ola!
Aqui tudo é de gota em gota.
Cadê seu fonte com a função hb_zipfile ?
Quando pedir ajuda, se possível já criar a função demonstrando o problema, e a versão do harbour.

Código: Selecionar todos

Syntax

hb_ZipFile( <cFile>, <cFileToCompress> | <aFiles>, <nLevel>,
<bBlock>, <lOverWrite>, <cPassword>, <lWithPath>, <lWithDrive>,
<pFileProgress> ) → lCompress

lWithPath Toggle to store the path or not
Saudações,
Itamar M. Lins Jr.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 14:02
por Softwhouse
Descobri. Compilei com o Harbour 3.0 e funcionou perfeitamente, o problema está no harbour 3.2. Baixei a versão nightly e o problema persiste.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 14:05
por Softwhouse
Fiz isso fora do sistema para testar:

Function Main()
aExtract:=Hb_GetFilesInZip('171130.zip')

If Hb_UnZipFile('171130.zip',,.T.,,'C:\',aExtract)
@ 10,20 Say 'Sucesso...'
EndIf
Return(.T.)

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 14:08
por Itamar M. Lins Jr.
Ola!
Cadê a sua sintaxe de como usa a hb_zipfile ?

Saudações,
Itamar M. Lins Jr.

Dúvida HB_Unzipfile()

Enviado: 01 Dez 2017 14:16
por Softwhouse

Código: Selecionar todos


#include 'inkey.ch'
Function Backup(cOperacao)
Local cColor, cTela, aDir, aRay, nChoice, aExtract, cPasta
Local cOrigem:='C:\Estoques\Dados\'
Local cDestino:='C:\Backups\Estoques\'
Local cArqZip:=SubStr(Dtos(Date()),3,6) + StrTran(Time(),':','')

HB_DirBuild('C:\Backups\Estoques')

If cOperacao=='Backup'
   If Confirma('Confirma o in¡cio do backup?')==1
      If LastKey()==K_ESC
         Return(.T.)
      Else
         MensagemRun('Aguarde, efetuando backup...','Begin')
         aRay:={}

         aDir:=Directory(cOrigem + '*.*', 'D')

         cPasta:=Left(cOrigem, Rat('\',cOrigem))

         For i = 1 To Len(aDir)
             AADD(aRay, cPasta + aDir[i,1] + '\*.DBF')
             AADD(aRay, cPasta + aDir[i,1] + '\*.CDX')
         Next

         HB_ZipFile(cDestino + cArqZip, aRay, 9,,,,.T.,.F.)

         MensagemRun('Backup conclu¡do!','End')
      EndIf
   EndIf

ElseIf cOperacao=='Restore'
   If Alert('Aten‡Æo !!!; NÆo prossiga com essa opera‡Æo; sem o devido conhecimento.;Desejas Continuar ?',{'NÆo','Sim'})==2
      cColor:=SetColor()
      cTela:=SaveScreen(04,19,14,39)
      SetColor('N/BG,W+/N')
      aDir:=Directory(cDestino + '*.zip')
      aRay:={}
      For i = 1 To Len(aDir)
          Aadd(aRay, aDir[i,1])
      Next
      Shade(04,19,13,38)
      @ 04,20 Say '´ Escolha o zip Ã'
      nChoice:=Achoice(06,21,11,36,aRay)
      If nChoice <> 0
         If Confirma('Confirma o in¡cio da restaura‡Æo?')==1
            If LastKey()==K_ESC
               SetColor(cColor)
               RestScreen(04,19,14,39,cTela)
               Return(.T.)
            Else
               MensagemRun('Aguarde, restaurando o backup...','Begin')
               aExtract:=Hb_GetFilesInZip(cDestino + aDir[nChoice,1])

               If Hb_UnZipFile('171130.zip',,.T.,,'C:\',aExtract)
                  MensagemRun('Restaura‡Æo conclu¡da!','End')
                  Alert('Acesse o sistema novamente...')
                  Quit
               EndIf

            EndIf
         EndIf
      EndIf
      SetColor(cColor)
      RestScreen(04,19,14,39,cTela)
   EndIf
EndIf
Return(.T.)