>CopyDiff([c:\Project folder],[d:\back up folder]) > > > >FUNCTION CopyDiff(lcSourceFolder, lcTargetFolder) > LOCAL laFiles[1], lnFor, lnFiles, lbCopyFile > LOCAL laFilesTrg[1], lnAscan, lnFilesTrg, lcNewExt > LOCAL lcFileSource, lcFileTarget > lcSourceFolder = ADDBS(lcSourceFolder) > lcTargetFolder = ADDBS(lcTargetFolder) > > lnFiles = ADIR(laFiles, lcSourceFolder+[*.*]) > ADIR(laFilesTrg,lcTargetFolder) > FOR lnFor = 1 TO lnFiles > IF NOT LEFT(laFiles[lnFor,1],2) == [.] > IF [D] $ UPPER(laFiles[lnFor,5]) > *** Folder copy it > TRY > md (lcTargetFolder+laFiles[lnFor,1]) > CATCH > ENDTRY > CopyDiff(lcSourceFolder+laFiles[lnFor,1], lcTargetFolder+laFiles[lnFor,1]) > ELSE > lbCopyFile = .t. > lcFileSource = lcSourceFolder+laFiles[lnFor,1] > lcFileTarget = lcTargetFolder+laFiles[lnFor,1] > IF lnFilesTrg # 0 > *** If lnFilesTrg == 0 then there is > *** NO files in that folder, so you don't have to care about EXT, all files will be copied there > > lnAscan = ASCAN(laFilesTrg,laFiles[lnFor,1],1,-1,1,1,11) > IF lnAscan > 0 > IF laFilesTrg[lnAscan,3] # laFiles[lnFor,3] OR; > laFilesTrg[lnAscan,4] # laFiles[lnFor,4] > IF JUSTEXT(laFiles[lnFor,1]) $ [VCX VCT SCX SCT FRX FRT DBF DBT] > lcNewExt = LEFT(JUSTEXT(laFiles[lnFor,1]),2)+[*] > lcFileSource = FORCEEXT(lcSourceFolder+laFiles[lnFor,1],lcNewExt) > lcFileTarget = FORCEEXT(lcTargetFolder+laFiles[lnFor,1],lcNewExt) > ENDIF > ELSE > lbCopyFile = .f. > ENDIF > ENDIF > ENDIF > IF lbCopyFile > COPY FILE (lcFileSource) TO (lcFileTarget) > ENDIF > ENDIF > ENDIF > ENDFOR >>