Amigos,
Utilizando HB_ZIPFILE, como compactar subpastas e seus conteúdos, de forma que seja possível descompactar como foi compactado, ex:
COMPACTAR:
c:\fwh\pasta1\test1.txt
c:\fwh\pasta1\test2.txt
c:\fwh\pasta2\test1.txt
c:\fwh\pasta2\test2.txt
AaDd(aFiles, "c:\fwh\pasta1\test1.txt")
AaDd(aFiles, "c:\fwh\pasta1\test2.txt")
AaDd(aFiles, "c:\fwh\pasta1\test3.txt")
AaDd(aFiles, "c:\fwh\pasta1\test4.txt")
cFilZip := "X:\ZIPS\TEST.ZIP"
lOk := HB_ZipFile( cFilZip, aFiles, 9, ,.T.,, .F., .F. )
aFile := {}
aFiles := {}
cFile := "X:\ZIPS\TEST.ZIP"
aFile := HB_GETFILESINZIP( cFile )
nLen := LEN(aFile)
If nLen = 0
Return(.f.)
EndIf
HB_UNZIPFILE( cFile, , .t., , , aFile)
FUNCTION Ret_Back_up()
PRIVATE vNome_zip, aDir1
PRIVATE oDlgHabla:=NIL
MsgStop("Atenção Para Retornar um Back-up do Banco de Dados é Nescessario que Ninguem esteja usando o Sistema","Aviso do Sistema")
IF MSGYESNO("Atenção Esse Processo é Totalmente Irreversível !!! Tem certeza que deseja Fazer o Retorno do Back-Up Agora ? ","Aviso do Sistema")
s2 := "*.HSP"
s1 := "Back-Up Banco de Dados " + "( " + s2 + " )"
IF DISKNAME() = "C"
cDir := curdrive()+':'
cHome := curdir()
aDir1 := curdrive()+":\"+rtrim(curdir()) + "\"
ELSE
cDir := ''
cHome := curdir()
aDir1 := "\"+rtrim(curdir()) + "\"
ENDIF
vNome_zip := SelectFile( {s1,"Todos Arquivos"}, {s2,"*.HSP*"} )
IF EMPTY(vNome_zip) .OR. LASTKEY()=27
close data
Return Nil
ELSE
ALERTNEW([Por favor aguarde... recuperando back-up],,,.t.)
ENDIF
aExtract := hb_GetFilesInZip( vNome_zip )
HB_UNZIPFILE( vNome_zip,,.F.,"senhaS", aDir1, aExtract )
dbcloseall()
ENDIF
dirchange(cDir+"\"+cHome)
sair()
IF MSGYESNO([Deseja reindexar os arquivos],[Aviso do Sistema])
CLOSE DATA
if ("WINDOWS XP" IN upper(os()))
RUN DEL *.CDX
ELSE
RUN DEL *.CDX
ENDIF
REINDEXA()
CLOSE DATA
ENDIF
Return
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 16 guests