#INCLUDE SHFileOperation.h LPARAMETERS tcSource, tcDestination, tcAction, tlCanceled LOCAL lcSourceString, lcDestString, nStringBase, lcFileOpStruct, lnFlag, lnStringBase , lcProgressTitle LOCAL oHeap, lcAction, lcActionText, lcOpt, lnRetCode DECLARE INTEGER SHFileOperation IN SHELL32.DLL STRING @ LPSHFILEOPSTRUCT SET PROCEDURE TO CLSHEAP ADDITIVE oHeap = CREATEOBJ('Heap') lcAction = UPPER(IIF( Empty( tcAction) Or VarType(tcAction) <> "C", "COPY", tcAction)) DO CASE CASE lcAction = "COPY" lcActionText = PROPER("COPY") lnAction = FO_COPY CASE lcAction = "MOVE" lcActionText = PROPER("MOVE") lnAction = FO_MOVE CASE lcAction = "DELETE" lcActionText = PROPER("DELETE") lnAction = FO_DELETE CASE lcAction = "RENAME" lcActionText = PROPER("RENAME") lnAction = FO_RENAME OTHERWISE RETURN Null ENDCASE lcOpt = "" lcSourceString = tcSource + CHR(0) + CHR(0) lcDestString = tcDestination + CHR(0) + CHR(0) lnStringBase = oHeap.AllocBlob(lcSourceString+lcDestString) lcProgressTitle = lcActionText + " File '" + tcSource + "'" + "" + ; IIF(lcAction="DELETE", "", " to '" + tcDestination + "'") + CHR(0)+ CHR(0) lnProgressTitle = oHeap.AllocBlob(lcProgressTitle) lnFlag = FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR + FOF_NOERRORUI IF NOT ("*" $ tcSource OR "?" $ tcSource ) *lnFlag = lnFlag + FOF_SIMPLEPROGRESS ENDIF lcFileOpStruct = NumToLONG(_screen.hWnd) + ; NumToLONG(lnAction) + ; NumToLONG(lnStringBase) + ; NumToLONG(lnStringBase + LEN(lcSourceString)) + ; NumToWORD(lnFlag) + ; NumToLONG(0) + ; NumToLONG(0) + ; NumToLONG(lnProgressTitle ) lnRetCode = SHFileOperation(@lcFileOpStruct) * Did user canceled operation? tlCanceled = ( SUBSTR(lcFileOpStruct, 19, 4) <> NumToLONG(0) ) RETURN (lnRetCode = 0)>Hi everybody,
>lcFile = forceext(alltrim(.list(m.lnI,1)),"*") > if CopyFiles(m.dir_Download+ m.lcFile, ; > m.dir_Lookups+ m.lcFile,'Copy') > erase (m.dir_Download+ m.lcFile) > endif>