SET TALK OFF SET SAFETY OFF CLEAR ltStart = DATETIME() x=1 CREATE CURSOR foundfiles ( cFilename c(80), nSize N(10), dMod d ) lcFile="archeadr.dbf" IF !WEXIST('mywin') DEFINE WINDOW mywin FROM 1,1 TO 20,70 TITLE "Searching..." FONT 'Arial',8 IN SCREEN ENDIF WAIT WINDOW "Searching for "+lcFile+"..." NOWAIT NOCLEAR ACTIVATE WINDOW mywin RecurseFolder( "\" ) ltFinish=DATETIME() - ltStart INDEX ON nSize TAG nSize ? "Finished." IF WEXIST('mywin') RELEASE WINDOWS mywin ENDIF *browse nowait WAIT CLEAR RETURN FUNCTION RecurseFolder( lcDir ) LOCAL i,N, laFiles[1] *?? "." N = ADIR( laFiles, lcDir + "*.*", "shd" ) FOR i = 1 TO N IF ( LEFT( laFiles[i,1], 1 ) != '.' ) IF ( "D" $ laFiles[i,5] ) mydir=ALLTRIM(LOWER(lcDir+laFiles(i,1))) IF LEN(mydir)>ROUND(WCOLS(),0) mydir="..."+RIGHT(mydir,LEN(mydir)-(LEN(mydir)-(ROUND(WCOLS(),0)-15))) ENDIF ? mydir RecurseFolder( lcDir + laFiles[i,1] + "\" ) ELSE IF TYPE('lafiles(i,1)')="C" .AND. UPPER(lcFile) $ UPPER(laFiles(i,1)) INSERT INTO foundfiles ; VALUES( lcDir + laFiles[i,1], laFiles[i,2], laFiles[i,3] ) ENDIF ENDIF ENDIF ENDFOR RETURN