* this program zips up all files in the currently active project *!* m.lcFileName = _VFP.ActiveProject.Name + TRANSFORM(YEAR(DATE())) + TRANSFORM(MONTH(DATE())) + TRANSFORM(DAY(DATE())) + "_" + TRANSFORM(HOUR(DATETIME())) + TRANSFORM(MINUTE(DATETIME())) + TRANSFORM(SEC(DATETIME())) + ".zip" lcClassPath = ADDBS(JUSTPATH( SYS(16) )) ?lcclasspath DECLARE GetPrivateProfileString IN WIN32API STRING sectionName, STRING KeyName, STRING stdVal, STRING @BUFFER, INTEGER BufferLen, STRING IniName lcBuffer = SPACE(255) GetPrivateProfileString( [backupdir],'backupdir',"",@lcBuffer, LEN(lcBuffer), lcClassPath+"backup.ini") IF NOT EMPTY( lcBuffer) lcBackupDir = ADDBS(STRTRAN( lcBuffer, CHR(0),"")) IF NOT DIRECTORY( lcBackupDir) MD (lcBackupDir) ENDIF ELSE lcBackupDir = ADDBS(FULLPATH(CURDIR())) ENDIF IF _VFP.ACTIVEPROJECT.FILES.COUNT > 0 lcYear = ALLTRIM( STR( YEAR(DATE()))) lcMonth = PADL(ALLTRIM( STR( MONTH(DATE()))),2,"0") lcDay = PADL(ALLTRIM( STR( DAY(DATE()))),2,"0") lcTempname = lcYear+lcMonth+lcDay lcTempname = lcTempname+"_"+CHRTRAN( TIME(), ":","") lcTempname = JUSTSTEM( _VFP.ACTIVEPROJECT.NAME)+lcTempname+"_Backup" lcZipFile = lcTempname+".zip" lcZipList = lcTempname+".lst" IF FILE( (lcZipFile) ) ERASE (lcZipFile) ENDIF IF FILE( (lcZipList) ) ERASE (lcZipList) ENDIF LOCAL loshell AS "wscript.shell" makelist(lcZipList) loshell = CREATEOBJECT("wscript.shell") loshell.RUN("winzip.exe -a -P -r "+m.lcBackUpDir+lcZipFile+" @"+lcZipList,2) INKEY(.5) ERASE (lcZipList) * IF FILE( lcZipFile ) * RENAME (lcZipFile) to ((this.cBackUpDir)+lcZipFile) * ENDIF RELEASE loshell ENDIF FUNCTION makelist LPARAMETERS tcZipList LOCAL lnHandle, loProject loProject = _vfp.ActiveProject lnHandle = FCREATE( (tcZipList)) FOR lnI = 1 TO loProject.FILES.COUNT lcFilePath = ADDBS( JUSTPATH( loProject.FILES[lnI].NAME)) lcFileName = JUSTSTEM( loProject.FILES[lnI].NAME) lcFileExt = UPPER(JUSTEXT( loProject.FILES[lnI].NAME)) DO CASE * forms CASE lcFileExt = "SCX" FPUTS( lnHandle, loProject.FILES[lnI].NAME) FPUTS( lnHandle, lcFilePath+lcFileName+".SCT" ) * classlibs CASE lcFileExt = "VCX" FPUTS( lnHandle, loProject.FILES[lnI].NAME) FPUTS( lnHandle, lcFilePath+lcFileName+".VCT" ) * databasecontainers CASE lcFileExt = "DBC" FPUTS( lnHandle, loProject.FILES[lnI].NAME) FPUTS( lnHandle, lcFilePath+lcFileName+".DCT" ) FPUTS( lnHandle, lcFilePath+lcFileName+".DCX" ) * reports CASE lcFileExt = "FRX" FPUTS( lnHandle, loProject.FILES[lnI].NAME) FPUTS( lnHandle, lcFilePath+lcFileName+".FRT" ) *labels CASE lcFileExt = "LBX" FPUTS( lnHandle, loProject.FILES[lnI].NAME) FPUTS( lnHandle, lcFilePath+lcFileName+".LBT" ) * database tables CASE lcFileExt = "DBF" * FPUTS( lnHandle, loProject.FILES[lnI].NAME) * IF FILE( lcFilePath+lcFileName+".CDX" ) FPUTS( lnHandle, lcFilePath+lcFileName+".CDX") ENDIF * IF FILE( lcFilePath+lcFileName+".FPT" ) FPUTS( lnHandle, lcFilePath+lcFileName+".FPT") ENDIF * any other file in the project OTHERWISE FPUTS( lnHandle, loProject.FILES[lnI].NAME) ENDCASE ENDFOR FCLOSE( lnHandle )>Hi everybody,