Gracias lo Mirare para ver como funciona
"Bingen Ugaldebere" <
bingen@muninser.com> escribió en el mensaje
news:[email=
46481003@ozsrv2.ozlan.local...]
46481003@ozsrv2.ozlan.local...[/email]
> Un ejemplo de ZIP
>
> ***************************************************
> * COPIA A ZIP DE ARCHIVOS DE DATOS DEL PROGRAMA *
> ***************************************************
> // El nombre se compone de 4 cifras del año, 2 del mes, 2 del dia
> // y un nº secuencial de 2 cifras
> // Graba un máximo de ZIP 10 por defecto, borrando los mas antiguos
> Function CopyDataZip(nNumZips,cMessage,cBackupFolder)
> Local oZip, aZipFiles:=Array(0), aZips:=Array(0), nZip:=0
> LOCAL cName:=DTOS(DATE())+"-"+"01", hWnd
> DEFAULT nNumZips To AppData:nAutoBackNr
> DEFAULT cMessage To If(AppData:cOriginalLng<>"ESP",;
> "Creando Copia Rápida de datos del programa
> a archivo",;
> "Creating Fast Copy of program's datas to
> file")
> DEFAULT cBackupFolder To AppData:cDataBackup
>
> //Create BACKUP path If necessary
> If !ExistDir( cBackupFolder )
> MakeDir( cBackupFolder )
> If !AppData:lUser
> MsgInfo(If(AppData:cOriginalLng<>"ESP",;
> "Created backup folder ","Se ha creado la carpeta de
> backup ")+;
> cBackupFolder)
> Endif
> Endif
>
> //Look if there is another ZIP of the day and generate a secuential
> number
> Do While File(cBackupFolder+cName+".ZIP")
> cName:=Left(cName,9)+Alltrim(StrZero(Val(Substr(cName,10,2)) +1,2))
> EndDo
> cName:=cBackupFolder+cName+".Zip"
>
> WaitOn(cMessage+CRLF+cBackupFolder+cName+".Zip")
>
> //Close all Child Window
> If Application:oMainForm:nFormType = ftMDIFRAME
> Application:oMainForm:oMdiClient:CloseAll()
> Endif
>
> //Find old ZIP and delete it if there are more than nNumZips
> aZips:=DIRECTORY(cBackupFolder+"*.ZIP")
> aZips:=ASORT(aZips,,, { |x, y| x[1] < y[1] })
> FOR nZIP:=1 TO LEN(aZips)-nNumZips
> Ferase(cBackupFolder+aZips[nZIP,1])
> NEXT
>
> Aadd( aZipFiles, AppData:cAppPath+"Fondo.Bmp" )
> Aadd( aZipFiles, AppData:cAppPath+"*.DBT" )
> Aadd( aZipFiles, AppData:cAppPath+"*.FPT" )
> Aadd( aZipFiles, AppData:cAppPath+"*.DBF" )
> //If data path is not equal to program path add to Zip
> If AppData:cAppPath<>AppData:cDataPath
> Aadd( aZipFiles, AppData:cDataPath+"Fondo.Bmp" )
> Aadd( aZipFiles, AppData:cDataPath+"*.DBT" )
> Aadd( aZipFiles, AppData:cDataPath+"*.FPT" )
> Aadd( aZipFiles, AppData:cDataPath+"*.DBF" )
> Endif
>
> WITH OBJECT oZip := TZipFile()
> :aFileMask := aZipFiles
> :cFileName := cName
> :lIncludePath := .T.
> :nCompressionLevel:= pkBEST
> :Run()
> END
>
> WaitOff()
>
> Return Nil
>