Código: Selecionar todos
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)
AEVAL( Directory(cPasta + aDir[i,1] +'\*.DBF'), {|afile| AADD(aRay, cPasta + aDir[i,1] + '\' + afile[1])} )
AEVAL( Directory(cPasta + aDir[i,1] +'\*.CDX'), {|afile| AADD(aRay, cPasta + aDir[i,1] + '\' + afile[1])} )
Next
if ! HB_ZipFile(cDestino + cArqZip, aRay, 9,,,,.T.,.F.)
alert('Erro')
Return .f.
EndIf
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')
If Hb_UnZipFile(cDestino + aDir[nChoice,1],,.T.,,'C:\')
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.)