CLEAR LOCAL lcFileToFind, llokay lcFileToFind = "\mydirectory\mfile.txt" llokay = findmyfile(lcFileToFind) ? llokay RETURN FUNCTION findmyfile(tcFilename) DECLARE LONG FindFirstFile IN Kernel32 AS funcFindFirst ; STRING cFileName, STRING @WIN32_DATA DECLARE FindClose IN Kernel32 AS funcFindClose LONG hHandle LOCAL lcFileName, lcBuffer, lcFilePath, llReturn lcFilePath = ADDBS(JUSTPATH(tcFilename)) lcFileName = JUSTFNAME(tcFilename) lcBuffer = REPLICATE(CHR(0), 318) hHandle = funcFindFirst(tcFilename, @lcBuffer) IF (hHandle > 0) lcFileName = SUBSTR(lcBuffer, 45) lcFileName = LEFT(lcFileName, AT(CHR(0), lcFileName)-1) ? lcFileName funcFindClose(hHandle) llReturn = .T. ELSE ? lcFilePath+lcFileName+" Does NOT Exist" llReturn = .F. ENDIF CLEAR DLLS funcFindFirst, funcFindClose RETURN llReturnAlso, just as a test, if instead of an APPEND, if you step through the file and copy records one at a time (while slower), does the CPU Utilization still max out? I'm curious because I have seen CPU Utilization jump up to 90% doing an append in the past.