FUNCTION CopyFileIfNewer LPARAMETERS lcSource,lcDest LOCAL lcError,lok lok=.F. IF !FILE(lcSource) RETURN .F. ENDIF IF !FILE(lcDest) COPY FILE (lcSource) TO (lcDest) RETURN .T. ENDIF IF FDATE(lcSource)<>FDATE(lcDest) OR (FDATE(lcSource)=FDATE(lcDest) AND FTIME(lcSource)<>FTIME(lcDest)) COPY FILE (lcSource) TO (lcDest) RETURN .T. ENDIF RETURN lOkBut it doesn't feel like the best/fastest way to do it?