Amiguinho,
De uma analisada neste meu codigo:
#include "FiveWin.ch"
FUNCTION NFWBackup()
local oDLGARQ, oGet, lGo := .f., lGrava := .t., lDireta := .t.
local lOverWrite:=.t., cPassword:="5volution"
local lCtrl101,nCtrl102:=15,lCtrl103,lCtrl104,lCtrl105,nCtrl106:=1,;
cCtrl107:="DIA(S)",nCtrl108:=1,cCtrl109:=SPACE(50)
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" )
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" )
DEFINE DIALOG oDLGARQ NAME "dlgBackup"
//REDEFINE CHECKBOX oCtrl101 VAR lCtrl101 ID 101 OF oDLGARQ
//REDEFINE GET oCtrl102 VAR nCtrl102 ID 102 PICTURE "999" OF oDLGARQ WHEN lCtrl101 ;
// SPINNER ;
// ON UP (++nCtrl102,oCtrl102:Refresh()) ;
// ON DOWN (--nCtrl102,oCtrl102:Refresh())
REDEFINE GET oCtrl102 VAR cBKPOrig ID 102 PICTURE "@!" OF oDLGARQ WHEN nCtrl108=1
REDEFINE BUTTON ID 103 OF oDLGARQ ACTION ( cBKPOrig:=cGetDir("Pesquise no conjunto de pastas na caixa abaixo qual o diretorio contem os dados de que necessita","C:\"),oCtrl102:Refresh(),;
VerifyINI( "BACKUP", "DESTINO", cBKPOrig, cPath+"5vbackup.ini", .t. ),;
VerifyINI( "BACKUP", "ORIGEM" , cBKPOrig, cPath+"5vbackup.ini", .t. ) )
//REDEFINE CHECKBOX oCtrl105 VAR lCtrl105 ID 105 OF oDLGARQ
//REDEFINE GET oCtrl106 VAR nCtrl106 ID 106 PICTURE "999" OF oDLGARQ ;
// SPINNER ;
// ON UP (++nCtrl106,oCtrl106:Refresh()) ;
// ON DOWN (--nCtrl106,oCtrl106:Refresh())
//REDEFINE COMBOBOX oCtrl107 VAR cCtrl107 ITEMS { "Mese(s)", "Semana(s)", "Dia(s)", "Ano(s)" } OF oDLGARQ ID 107
REDEFINE BITMAP oBitMap ID 101 OF oDLGARQ RESOURCE "bmp006" //TRANSPAREN
REDEFINE BITMAP oBitMap ID 104 OF oDLGARQ RESOURCE "bmp006" //TRANSPAREN
REDEFINE BUTTON ID 105 OF oDLGARQ ACTION ZipBackup()
REDEFINE BUTTON ID 106 OF oDLGARQ ACTION ZipRestore()
REDEFINE BUTTON ID 107 OF oDLGARQ ACTION (lGo := .f., oDLGARQ:End())
ACTIVATE DIALOG oDLGARQ CENTERED
//VerifyINI( "BACKUP" , "Nome" , cZIPName , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Email" , cZIPEmail , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Arquivos" , cZIPFiles , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Nivel" , nZIPNivel , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "Reescreve" , lOverWrite, cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "PassWord" , cPassword , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "AUTOMATICO", cBKPAuto , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "DESTINO" , cBKPDest , cPath+"5vbackup.ini", .t. )
//VerifyINI( "BACKUP" , "ORIGEM" , cBKPOrig , cPath+"5vbackup.ini", .t. )
return nil
FUNCTION ZIPBackup()
local oMeter
SET _3DLOOK ON
MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
ZipIn(oMeter) },;
"Gerando arquivo compactado...", "Backup/Restore" )
Return .f.
FUNCTION ZipIn(oMeter)
local lOverWrite:=.t., cPassword:="5volution"
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cZIPEmail := VerifyINI( "BACKUP" , "Email" , "irochinha@itelefonica.com.br", cPath+"5vbackup.ini" )
cZIPFiles := VerifyINI( "BACKUP" , "Arquivos" , "*.DBF;*.DBT;*.FPT;*.ARR;*.ETI;*.FRM;*.HRB;*.VAL;*.DAT;*.INI", cPath+"5vbackup.ini" )
nZIPNivel := VerifyINI( "BACKUP" , "Nivel" , 8 , cPath+"5vbackup.ini" )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" )
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "LEMBRAR" , "S" , cPath+"5vbackup.ini" )
VerifyINI( "BACKUP" , "PUBLICO" , "N" , cPath+"5vbackup.ini" )
aZipFiles := ProcessaArray( StringToArray( cZIPFiles, ";" ) )
oMeter:nTotal:=Len(aZIPFiles)
cBKPOrig := curdrive()+":\"+curdir()
if !file(cBKPOrig+"\"+cZIPName)
Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
else
//fErase(cBKPOrig+"\"+cZIPName)
//if MsgYesNo( "Arquivo ("+cBKPName+") ja existe, Deseja re-escrever", "Atencao" )
// Hb_ZIPFILE(cBKPOrig+"\"+cZIPName, aZIPFiles, nZIPNivel, {|cFile,nPos| (oMeter:Set(nPos),SysRefresh()) },lOverWrite )
//endif
endif
return .t.
FUNCTION ZIPRestore()
local oMeter
SET _3DLOOK ON
MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
ZipOut(oMeter) },;
"Descompactando arquivo...", "Backup/Restore" )
Return Nil
FUNCTION ZipOut(oMeter)
local lOverWrite:=.t., cPassword:="5volution"
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
lOverWrite := VerifyINI( "BACKUP" , "Reescreve" , "S" , cPath+"5vbackup.ini" )
cPassword := DeCodifica(VerifyINI( "BACKUP" , "PassWord" , Codifica("5volution") , cPath+"5vbackup.ini" ))
cBKPDest := VerifyINI( "BACKUP" , "DESTINO" , cPath , cPath+"5vbackup.ini" )
oMeter:nTotal:=HB_GetFilesInZip( cZIPName )
HB_UNZIPFILE(cBKPDest+"\"+cZIPName,,lOverWrite,,cBKPDest)
return .t.
FUNCTION ProcessaArray( aQArray )
local aTArray := {}
for i = 1 to len( aQArray )
DBF_NOMES := array( ADIR( aQArray[i] ) )
ADIR( aQArray[i], DBF_NOMES )
for ii = 1 to len( DBF_NOMES )
AADD( aTArray, DBF_NOMES[ii] )
next
next
return aTArray
FUNCTION CheckBKP()
cBKPName := "BK"+strtran(dtoc(date()),"/","")+".ZIP"
cBKPAuto := VerifyINI( "BACKUP" , "AUTOMATICO", "N" , cPath+"5vbackup.ini" )
cZIPName := VerifyINI( "BACKUP" , "Nome" , cBKPName , cPath+"5vbackup.ini", .t. )
cBKPOrig := VerifyINI( "BACKUP" , "ORIGEM" , cPath , cPath+"5vbackup.ini" )
cBKPOrig := curdrive()+":\"+curdir()
if cBKPAuto = "S"
if !file(cBKPOrig+"\"+cZIPName)
if Val(TTOS(time())) > 173000
if MsgYesNo( "Backup de seguranca de hoje nao existe. "+CRLF+"Deseja efetuar o backup?", "Atencao" )
ZIPBackup()
endif
endif
endif
endif
return .t.
FUNCTION VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
oIni := TIni():New( _inifile_ )
if _grava_ = .t.
oIni:Set( _section_, _entry_, _var_ )
endif
return oIni:Get( _section_, _entry_, _var_, _var_ )
Resource:
dlgBackup DIALOG 10, 124, 269, 125
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Gerenciar arquivos"
FONT 8, "MS Sans Serif"
{
EDITTEXT 102, 14, 51, 189, 12
PUSHBUTTON "Procurar...", 103, 207, 50, 50, 14
PUSHBUTTON "Fazer &Backup Agora", 105, 8, 106, 86, 14
PUSHBUTTON "&Restaurar Agora...", 106, 96, 106, 86, 14
PUSHBUTTON "Fechar", 107, 212, 106, 50, 14
CONTROL "", 101, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 5, 20, 20
CONTROL "", 104, "static", SS_BLACKRECT | WS_CHILD | WS_VISIBLE, 8, 76, 20, 20
LTEXT "Local atual:", -1, 15, 40, 106, 8
GROUPBOX "Local para backup e restauração", -1, 8, 29, 256, 42, BS_GROUPBOX
LTEXT "Faça o backup periódico de seus arquivos de dados em um local seguro. Dê preferencia a locais fora de seu disco rigido, como outro disco rÃgido, cd ou disco virtual na internet.", -1, 35, 74, 228, 27
LTEXT "Insira o local para backup ou restauração dos arquivos.", -1, 34, 3, 228, 27
}
Nem retirei os trechos desabilitados e se faltar uma fução me da um toque.