LPARAMETERS m.tcFolderName,m.tcDeleteFileSkeletons * * DELETEFILES.PRG * * Deletes all files according to the specified delete * file skeletons in the specified folder. Intended * specifically to delete VFP temporary files. * * RETURNs the number of files successfully deleted. * * Author: Mike Yearwood * * Usage: * * At startup and/or shutdown of a VFP EXE/APP * either of * DO DELETEFILES WITH "*.tmp,*.cdx" * or * LOCAL m.lnFiles * m.lnFiles = DELETEFILES("*.tmp,*.cdx") * * lParameters * tcFolderName (R) Folder containing files to delete. * * tcDeleteFileSkeletons (R) comma-delimited list of File Skeletons * such as "*.tmp,*.cdx,*.txt" or simply "*.tmp" * ASSERT ; VARTYPE(m.tcFolderName) = "C" ; AND NOT EMPTY(m.tcFolderName) ; MESSAGE "FolderName must be character and not empty." ASSERT ; VARTYPE(m.tcDeleteFileSkeletons) = "C" ; AND NOT EMPTY(m.tcDeleteFileSkeletons) ; MESSAGE "DeleteFileSkeleton must be character and not empty." m.tcFolderName = ADDBS(m.tcFolderName) #DEFINE kcDelimiter "," LOCAL ; m.lnFilesDeleted, ; m.lnIteration, ; m.lcDeleteFileSkeleton, ; m.lcFileName m.lnFilesDeleted = 0 FOR m.lnIteration = 1 TO GETWORDCOUNT(m.tcDeleteFileSkeletons,kcDelimiter) m.lcDeleteFileSkeleton = GETWORDNUM(m.tcDeleteFileSkeletons,m.lnIteration,kcDelimiter) m.lcFileName = SYS(2000,m.tcFolderName + m.lcDeleteFileSkeleton) DO WHILE NOT EMPTY(m.lcFileName) TRY ERASE (m.tcFolderName + m.lcFileName) m.lnFilesDeleted = m.lnFilesDeleted + 1 CATCH TO m.loError *File could not be deleted - probably is in use, so do nothing. ENDTRY m.lcFileName = SYS(2000,m.tcFolderName + m.lcDeleteFileSkeleton,1) ENDDO ENDFOR m.lnIteration RETURN m.lnFilesDeleted