LPARAMETERS tcCursorName, tcFromFolder LOCAL lnFileCount LOCAL ARRAY laFiles[1] ADIR(laFiles, ADDBS(m.tcFromFolder) + "*.*", "HDS") FOR lnFileCount = 1 TO ALEN(laFiles,1) IF laFiles[lnFileCount, 1] # "." AND laFiles[lnFileCount, 1] # ".." IF "D" $ laFiles[lnFileCount,5] GetAllFiles("c_FilesToBackup", ADDBS(m.tcFromFolder) + laFiles[lnFileCount, 1]) ELSE INSERT INTO (m.tcCursorname) VALUES (ADDBS(m.tcFromFolder) + laFiles[lnFileCount,1]) ENDIF ENDIF ENDFORI then can zip up a folder (and all sub-folders) like this:
IF ZipOpen(m.lcToFile) m.llSuccess = .T. * get all files into a cursor CREATE CURSOR c_FilesToBackup (mFileName M(4)) GetAllFiles("c_FilesToBackup", m.tcFromFolder) SELECT c_FilesToBackup m.lnFilesToBackup = RECCOUNT("c_FilesToBackup") m.loThermo = createobject("frmThermoBar", ; "Backing up files..." , ; m.lnFilesToBackup) m.lnCount = 0 SCAN SCATTER MEMVAR memo m.lnCount = m.lnCount + 1 m.lcDisplay = X7DISPTH(STRTRAN(m.mFileName, m.tcFromFolder, ""), m.loThermo.lblMessage) m.loThermo.UpdateStatusBar((m.lnCount*100)/m.lnFilesToBackup, m.lcDisplay) m.lcRelativePath = STRTRAN(STRTRAN(m.mFileName, m.tcFromFolder, ""), JUSTFNAME(m.mFileName), "") IF NOT ZipFileRelative(m.mFileName, m.lcRelativePath) m.llSuccess = .F. EXIT ENDIF ENDSCAN IF m.llSuccess AND ZipClose() m.llSuccess = .T. ENDIF RELEASE LIBRARY VFPCompression.FLL ENDIFHope this helps